jan*_*eob 1 java collections lambda hashmap
编码此代码的最佳方法是什么:
objectsList不是空列表.包含许多对象.这只是为了说明这种类型.
List<ObjectType> objectsList= Collections.EMPTY_LIST;
ArrayList<RelatedModule> arrayWithOrder = new ArrayList<>();
Map<Integer, RelatedModule> mappedObjects= new HashMap<>();
objectsList.forEach(o ->
mappedObjects.put(o.getOrder(),
new Dto(o.getFirstName(),
o.getLastName()))
);
for (int i = 0; i < objectsList.size(); i++) {
arrayWithOrder.add(mappedObjects.get(i));
}
Run Code Online (Sandbox Code Playgroud)
您可以使用a TreeMap<Integer, RelatedModule>,但是,除非有多个具有相同顺序的对象,并且目的是仅保留最后一个,您可以简单地对列表进行排序,然后对其进行转换:
List<RelatedModule> arrayWithOrder =
objectsList.stream()
.sorted(Comparator.comparingInt(ObjectType::getOrder))
.map(o -> new RelatedModule(o.getFirstName(), o.getLastName()))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |