這是一個Java問題。將列表<?>轉換爲列表的最快方式<ObjectType>
什麼是將List<?>
轉換爲List<ObjectType>
的最快方法?我知道這是可能的迭代,請排除該選項。
實施例通過迭代,
final List<ObjectType> targetList = new ArrayList<ObjectType>();
// API returns List<?> so I have no choice.
List<?> resultList = resultSet.getResults();
// This is slow. Average list size is 500,000 elements.
while (resultList != null && !resultList.isEmpty()) {
for (final Object object : resultList) {
final ObjectType objectType = (ObjectType) object;
targetList.add(objectType);
}
resultSet = someService.getNext(resultSet);
resultList = resultSet.getList();
}
感謝。
由於您使用的是基於陣列的列表,你嘗試過預分配500000元(或約儘可能多的?)。這可能會提高性能。 – 2009-08-06 04:09:36
現在我想到了,LinkedList將完全消除整個「預分配內存」問題。 – 2009-08-06 04:12:52
是否有東西從'resultList'移除元素,或者'while'應該是'if'? – 2009-08-06 04:30:37