IMap<Long, Vehicle> mapVehicles = // get all vehicles , total 2500 unit
Collection<Vehicle> collectionVeh = mapVehicles.values(); // fast
// I want to sort it so wrap to ArrayList
List<Vehicle> listVehicle = new ArrayList(collectionVeh .values()); // very slow
Collections.sort(listVehicle );// fast
如何快速将Collection转换为List?
感谢。
答案 0 :(得分:3)
如果您的Collection
不是List
,而您希望将其作为List
,那么没有比new ArrayList(yourCollection)
做更快的方法了。 (我不相信构造函数会做任何你可以跳过的不必要的工作,可以这么说。)
然而,您可以做的是更改原始集合。如果它当前为HashMap
,则您的迭代将花费与其容量成比例的时间。通过更改为LinkedHashMap
,您可以按照与其大小成比例的时间迭代它。 (可能是微不足道的差异,但值得一试。)
答案 1 :(得分:2)
如果将车辆放在TreeSet中,它会更快吗?
答案 2 :(得分:0)
你可以试试Arrays.asList(collectionVeh.values().toArray)
吗?可能会跑得更快吗?