【发布时间】:2016-02-17 07:49:48
【问题描述】:
Javadoc 说“
“将此 ArrayList 实例的容量调整为列表的当前大小”
下面是用来理解函数的Test程序,
ArrayList<Integer> arraylist = new ArrayList<Integer>(50);
arraylist.add(1);
arraylist.add(2);
arraylist.add(3);
arraylist.add(4);
arraylist.add(5);
arraylist.add(6);
arraylist.add(7);
arraylist.add(1);
arraylist.add(1);
arraylist.add(1);
System.out.println(arraylist);
arraylist.trimToSize();
System.out.println(arraylist);
但是两种情况下的输出都是一样的。
[1, 2, 3, 4, 5, 6, 7, 1, 1, 1]
谁能帮我理解如何使用这种方法来缩小数组列表的大小?
【问题讨论】:
-
我看到了您发布的链接。但这并不能解决我的问题。我的问题很简单,在 trimTosize 方法之前和之后,arraylist 打印相同的数据。 trimToSize 方法有什么优势?
-
阅读链接问题中的答案。他们确切地回答了这个问题。
-
ArrayList由一个数组支持,为了提高效率,该数组可以大于包含在List、trimToSize中的元素数量,修剪后备缓冲区使其大小为与缓冲区中的元素个数相同 -
它将内部数组修剪到所需的长度?当您删除项目时,数组不会神奇地变小,它会保持原来的大小,并且在添加项目后,列表可能会变成以前大小的 1.5 倍。这会导致许多未使用的数组元素。该方法可以只修剪内部数组以适应项目的实际数量...
-
所以在我提供的示例中,在调用 trimToSize 方法之前,arraylist 有一个大小为 50 的数组?
标签: java