Java List

|---list:有序的元素列表,顺序不会乱,可以通过角标操作,因此元素可以重复。

    |---ArrayList: 可变长度的数组,查询快,增删慢,线程安全。线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。

   |---LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快) 

方法 

add

//add方法
ArrayList a1 = new ArrayList();
a1.add("sandy");
a1.add("learns");
a1.add("java");
System.out.println("the original a1: "+a1);//the original a1: [sandy, learns, java]
a1.add(0,"Elsa");
a1.add(2,"studys");
System.out.println("The changed a1: "+a1);//The changed a1: [Elsa, sandy, studys, learns, java]
ArrayList a2 = new ArrayList();
a2.add("Java");
a2.add("is");
a2.add("interesting");
a1.add(0,a2);
System.out.println("a1=a1+a2: "+a1);//a1=a1+a2: [[Java, is, interesting], Elsa, sandy, studys, learns, java]
a1.add(a2);
System.out.println("a1 add a2 at the end: "+a1);//a1 add a2 at the end: [[Java, is, interesting], Elsa, sandy, studys, learn

 remove 方法

//remove
System.out.println(a1);//a1 add a2 at the end: [[Java, is, interesting], Elsa, sandy, studys, learns, java, [Java, is, interesting]]
a1.remove("java");
System.out.println(a1);//[[Java, is, interesting], Elsa, sandy, studys, learns, [Java, is, interesting]]
a1.remove(0);
System.out.println(a1);//[Elsa, sandy, studys, learns, [Java, is, interesting]]
a1.removeAll(a1);
System.out.println(a1);//[]

修改指定位置的值 set

//修改指定位置的值set
ArrayList a1 = new ArrayList();
a1.add("sandy");
a1.add("learns");
a1.add("java");
System.out.println(a1);//[sandy, learns, java]
a1.set(0,"elsa");
System.out.println(a1);//[elsa, learns, java]

//获取值 get(index), 
subList(startindex,endindex):不包含endindex

System.out.println(a1.get(0));//elsa
System.out.println(a1.subList(1,3));//[learns, java]

原文地址:https://www.cnblogs.com/xiaohai2003ly/p/7210054.html