簡體   English   中英

將ConcurrentHashMap轉換為Java中的排序列表

[英]Transform ConcurrentHashMap into a sorted list in Java

在Java8中,在ConcurrentHashMap計算了數據之后,

// 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);

我想實現這一目標:

data.parallelStream()
.map( (k, v) -> new A(k, v.get() * 1.0 / 105) )
.sort().forEach(System.out::println)

如何正確地做到這一點?

我想這就是你想要的。 您需要創建一個Stream of Entry對象,因此不能編寫(k, v)->

data.entrySet()
    .parallelStream()
    .map(e -> new A(e.getKey(), e.getValue().get() * 1.0 / 105))
    .sorted()
    .forEachOrdered(System.out::println);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM