adi*_*moh 1 java arraylist comparator
有 2 个对象列表A和B。所以List<A>和List<B>.
A和Bid有一个连接它们的
公共 Sting 场。B也有一个数字字段value。我们希望根据列表 Bvalue中的内容对列表 A 进行排序。
使用 Java API(例如Comparator )执行此操作的最佳方法是什么?
我将创建一个地图排名id以value进行有效查找:
Map<String, Integer> rank = listB.stream()
.collect(Collectors.toMap(b -> b.id, b -> b.value));
Run Code Online (Sandbox Code Playgroud)
然后您可以根据您的地图构造一个比较器并使用它对列表进行排序A:
listA.sort(Comparator.comparing(a -> rank.get(a.id));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |