在我以相反的顺序排序map<K, V>
之后,我已经建立了V
。
如何使用排序列表创建属性为<Type>
的列表K, V
对象?
具体来说,我希望列表中的对象的Vs按排序顺序排列。以下内容未达到我预期的结果。
for (String key: map.keySet()) {
for (int i = 0; i < weightedAves.length; i++) {
if (map.get(key) == weightedAves[i]) {
Rating rating = new Rating(key, weightedAves[i]);
MovieRatings.add(rating);
}
}
}
答案 0 :(得分:0)
一个非常简单的解决方案是使用Streams。
map.entrySet().stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByKey()))
.forEach(e -> movieRatings.add(
new Rating(e.getKey(), e.getValue())
));
否则,您可以按任意顺序简单地添加到列表中,并在添加项目后对列表进行排序。
map.forEach((key, val) -> {
movieRatings.add(new Rating(key, val));
});
movieRatings.sort(...);
您可以通过创建Comparator
来指定如何安排订单,以处理如何订购数据。