- ArrayList:基于动态数组实现,支持随机访问。
- Vector:和 ArrayList 类似,但它是线程安全的。
- LinkedList:基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。不仅如此,LinkedList 还可以用作栈、队列和双向队列。
List和数组相互转换
List<Integer> input=new ArrayList<>();
input.add(1);
input.add(2);
// list to array
Integer[] array=input.toArray(new Integer[0]);
// array to list
List<Integer> list= Arrays.stream(array).collect(Collectors.toList());
// 如果是基本数据类型的数组
int[] intArray=new int[]{1,2,3}; List<Integer> list2= Arrays.stream(intArray).boxed().collect(Collectors.toList());