• ArrayList:基于动态数组实现,支持随机访问。
    • Vector:和 ArrayList 类似,但它是线程安全的。
    • LinkedList:基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。不仅如此,LinkedList 还可以用作栈、队列和双向队列。

    List和数组相互转换

    1. List<Integer> input=new ArrayList<>();
    2. input.add(1);
    3. input.add(2);
    4. // list to array
    5. Integer[] array=input.toArray(new Integer[0]);
    6. // array to list
    7. List<Integer> list= Arrays.stream(array).collect(Collectors.toList());
    8. // 如果是基本数据类型的数组
    9. int[] intArray=new int[]{1,2,3}; List<Integer> list2= Arrays.stream(intArray).boxed().collect(Collectors.toList());