【发布时间】:2012-08-16 07:16:25
【问题描述】:
我有一个收藏列表,我需要颠倒它的顺序。
一切正常List<Point> myList = new ArrayList<Point>();
我可以用
反转它Collections.reverse(myList);
但这会导致分配 java.util.AbstractList$FullListIterator
我有大约 5000 - 10000 条路径要在探路者中反转,这会导致 GC 启动。
如何在没有任何必要分配的情况下扭转这种情况?我尽可能使用通用池,但我坚持这一点。
【问题讨论】:
-
可以接受反向视图(不是副本)吗?喜欢this。
-
这不会分配新的东西吗?
-
有新的分配。如果您的列表实现了 RandomAccess,则它是 O(1) 操作,而不是经典副本的 O(n/2)。由于是反向列表视图,所以行为也不同:“返回列表中的更改会反映在此列表中,反之亦然”。
标签: java android memory-management garbage-collection