gpt4 book ai didi

Java - 使用大小初始化ArrayList然后收缩

转载 作者:行者123 更新时间:2023-12-01 21:56:06 25 4
gpt4 key购买 nike

我有一个 ArrayList,我想转换它,这是我的代码:

ArrayList<PostWrapper> postWrapperList = listingWrapper.getData();
int size = postWrapperList.size();
ArrayList<Post> postList = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
PostWrapper postWrapper = postWrapperList.get(i);
if (postWrapper.isKindLink()) {
Post post = postWrapper.getData();
postList.add(post);
}
}
postList.removeAll(Collections.singleton(null));

正如您在这段代码中看到的,我正在进行某种过滤,因此最终大小可以小于初始大小。目前我正在调用removeAll()来删除空对象以缩小ArrayList。

我的问题是,哪种方式更有效,或者只是创建没有任何初始大小的 ArrayList,然后让 ArrayList 类处理动态分配?
我关心的是释放创建列表时保留的多余容量。

最佳答案

来自java.util.ArrayList的代码

/**
* Trims the capacity of this <tt>ArrayList</tt> instance to be the
* list's current size. An application can use this operation to minimize
* the storage of an <tt>ArrayList</tt> instance.
*/
public void trimToSize() {
modCount++;
if (size < elementData.length) {
elementData = (size == 0)
? EMPTY_ELEMENTDATA
: Arrays.copyOf(elementData, size);
}
}

关于Java - 使用大小初始化ArrayList然后收缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34259762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com