- ArrayList
- ArrayList是线性顺序存储的,是一种线性表
- 它的特性和数组很接近,数组大小是不变的,而ArrayList的大小是可以动态改变的
- LinkedList
- 是数据结构中链表的java实现
- 相对于List来说,LinkedList最主要的功能方面的增强是可以在List的头部和尾部添加、删除、取得元素,直接提供了这些方法的实现。所以它可以非常方便的实现我们数据结构中的常见的Stack(栈)、queue(队列)等
package JavaSE.集合.List接口; import java.util.*; public class TestList { public static void main(String[] args) { List<String> list1 = new ArrayList(); list1.add("wqr"); list1.add("aaa"); list1.add("bbb"); list1.add("ccc"); /** * * ArrayList集合 */ List list2 = new ArrayList(); list2.add("wqr1"); list2.add("aaa"); list2.add("aaa1"); list2.add("bbb1"); list2.add("ccc1"); // System.out.println(list1.get(1));//返回指定的索引为1的值aaa System.out.println(list1); System.out.println(list2); // list1.addAll(list2);集合中加入另外一个集合对象 // System.out.println(list1);//[wqr, aaa, bbb, ccc, wqr1,aaa, aaa1, bbb1, ccc1] // list1.addAll(3,list2);集合中加入另外一个集合对象 在索引为3的位置添加 // System.out.println(list1);//[wqr, aaa, bbb, wqr1,aaa, aaa1, bbb1, ccc1, ccc] // list1.removeAll(list2);清空指定集合 // System.out.println(list1);//[wqr, bbb, ccc] // System.out.println(list1.size());//list1目前的容纳元素个数为4 // System.out.println(list1.isEmpty());//集合是否为空 System.out.println(list1.remove(1));//aaa System.out.println("删除后\t" + list1);// 删除后 [wqr, bbb, ccc] System.out.println("=======================增强for遍历================================="); for (Object o : list1) { System.out.println(o); } System.out.println("=======================迭代器=正序================================"); Iterator listIter = list1.listIterator(); while (listIter.hasNext()) { System.out.println(listIter.next()); } System.out.println("=======================迭代器逆序================================="); ListIterator listIter1 = list1.listIterator(list1.size()); while (listIter1.hasPrevious()) { System.out.println("listIter.previous()\t" + listIter1.previous()); } /** * * LinkList集合 */ LinkedList list3 = new LinkedList(); list3.add("wqr"); list3.add("aaa"); list3.add("bbb"); list3.add("ccc"); System.out.println(list3.getFirst());//查询第一个位置 System.out.println(list3.getLast());//查询第一个位置 list3.addFirst("头部");//添加第一个位置 list3.addLast("尾部");//添加最后一个位置 System.out.println(list3); list3.removeFirst();//删除头部 list3.removeLast();//删除尾部 System.out.println(list3); } }