Collection接口是集合的老祖宗,定义了接口的基本方法。
List是Collection接口的子接口,也是最常用的接口,此接口对Collection接口进行了大量的扩展,List集合里的元素是可以重复的。
List接口的主要实现类有ArrayList,和LinkedList。
在数据量不大的情况下,这两个类性能差别不大,
一般情况下,集合里的元素很少变化的,一般用ArrayList,
假如集合里元素经常变动,要用LinkedList;底层实现有差别的。
package com.xuyigang1234.chp06.sec01; import java.util.ArrayList; public class TestArrayList { // 打印列表元素 public static void printArrayList(ArrayList<String> arrayList) { System.out.println("列表元素是:"); for(int i=0;i<arrayList.size();i++) { System.out.print(arrayList.get(i)+" "); } } public static void main(String[] args) { ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("Java1"); arrayList.add("Java2"); arrayList.add("Java3"); arrayList.add("Java4"); arrayList.add(1, "小张三"); printArrayList(arrayList); } }
输出:
列表元素是:
Java1 小张三 Java2 Java3 Java4
package com.xuyigang1234.chp06.sec01; import java.util.LinkedList; public class TestLinkedList { private static void pringLinkedList(LinkedList<String> linkedList){ System.out.println("当前元素的集合:"); for(int i=0;i<linkedList.size();i++){ System.out.print(linkedList.get(i)+" "); } System.out.println(); } public static void main(String[] args) { LinkedList<String> linkedList=new LinkedList<String>(); linkedList.add("张三"); linkedList.add("李四"); linkedList.add("王五"); linkedList.add("李四"); linkedList.add("赵六"); pringLinkedList(linkedList); // indexOf 寻找位置 System.out.println(linkedList.indexOf("李四")); pringLinkedList(linkedList); // peekFirst 获取第一个元素 System.out.println(linkedList.peekFirst()); pringLinkedList(linkedList); // peekLast 获取最后一个元素 System.out.println(linkedList.peekLast()); pringLinkedList(linkedList); // pollFirst 摘取第一个元素 System.out.println(linkedList.pollFirst()); pringLinkedList(linkedList); // pollLast 榨取最后一个元素 System.out.println(linkedList.pollLast()); pringLinkedList(linkedList); } }
当前元素的集合: 张三 李四 王五 李四 赵六 1 当前元素的集合: 张三 李四 王五 李四 赵六 张三 当前元素的集合: 张三 李四 王五 李四 赵六 赵六 当前元素的集合: 张三 李四 王五 李四 赵六 张三 当前元素的集合: 李四 王五 李四 赵六 赵六 当前元素的集合: 李四 王五 李四