首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中将ConcurrentHashMap转换为排序列表

在Java中将ConcurrentHashMap转换为排序列表
EN

Stack Overflow用户
提问于 2015-04-13 22:06:26
回答 1查看 976关注 0票数 1

在Java8中,在计算了ConcurrentHashMap中的数据之后,

代码语言:javascript
复制
// this is a working code, which I want to simplify
ConcurrentMap<String, AtomicInteger> data =
    new ConcurrentHashMap<String, AtomicInteger>();
// ... (fill in the data object)
final int l = data.keySet().size();
P[] points = new P[l];
int i = 0;
for (Map.Entry<String, AtomicInteger> entry : data.entrySet())
    points[i++] = new A(entry.getKey(), entry.getValue().get() * 1.0 / 105);
Arrays.sort(points);

我要做到这一点:

代码语言:javascript
复制
data.parallelStream()
.map( (k, v) -> new A(k, v.get() * 1.0 / 105) )
.sort().forEach(System.out::println)

如何正确地做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-13 22:19:36

我想这就是你想要的。您需要创建一个Stream of Entry对象,因此不能编写(k, v)->

代码语言:javascript
复制
data.entrySet()
    .parallelStream()
    .map(e -> new A(e.getKey(), e.getValue().get() * 1.0 / 105))
    .sorted()
    .forEachOrdered(System.out::println);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29615892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档