2017-05-23 1 views
2

私は、LinkedHashMapを持っていることをSort a Map<Key, Value> by values (Java)で表したHashMapをソートしました。すなわち、Iterableは、繰り返しの順序を保証しています。Java 8のイテレータから最初のn個の値を取得する方法は?

ここでは、できるだけJava 8 Collection Stream APIテクニックを使用して、1行でマップの最初のnエントリのjava.util.Listを取得したいと考えています。

私は配列であることを行う可能性があることを説明するが、それはエレガントではありません、Listを得るために、私の意図とは異なり(つまり、変換することができますが、それは不必要なステップだが)と追加を必要とhow can i get two consecutive values from Iteratorを見つけました方法。

答えて

9

ストリームentrySetリミット第n要素にStream

List<Map.Entry<Key,Value>> firstN = 
    map.entrySet().stream().limit(n).collect(Collectors.toList()); 
1

StreamExでより簡潔なコードを書く:

List<Map.Entry<Key,Value>> firstN = EntryStream.of(map).limit(n).toList(); 
関連する問題