指定的List容量,并不代表实际元素,初始化时实际元素个数为0,只有在进行add()和remove()等,实际元素个数才会发生改变。 public class TestCollections { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("2"); list.add("3"); list.add("1"); System.out.println(list); //排序 Collections.sort(list); System.out.println(list); //反转 Collections.reverse(list); System.out.println(list); //批量添加 Collections.addAll(list, "9", "5", "8"); System.out.println(list); //添加整个目标List List<String> dest = new ArrayList<>(); dest.addAll(list); System.out.println(dest); // 拷贝 // 指定的List容量为3,只是指定了List当前容纳的元素个数为3, // 即List的容纳能力(Capacity)为3, // 并不代表List中有了三个实际的元素。 // 初始化时实际元素个数(Size)永远为0, // 只有在进行add()和remove()等相关操作时,实际元素个数才会发生改变。 List<String> dest2 = new ArrayList(Arrays.asList(new String[list.size()])); Collections.copy(dest2, list); System.out.println(dest2); } }