A Map<>
имеет метод Set<Map.Entry<K, V>> entrySet()
. Это дает вам Set
записей, которые вы можете перебрать.
Если вы хотите перебрать более Tuple2<Integer, Double>
объектов, вам необходимо преобразовать Entry
объектов. Для этого вы можете e. г. превратить ваш Set
в Stream
:
Шаг за шагом:
Stream<Entry<Integer, Double>> myEntryStream = myMap.entrySet().stream();
Stream<Tuple2<Integer, Double>> myTuple2Stream = myEntryStream.map(entry -> new Tuple2(entry.getKey(), entry.getValue()));
или просто
Stream<Tuple2<Integer, Double>> myStream = myMap.entrySet().stream().map(entry -> new Tuple2(entry.getKey(), entry.getValue()));
Чтобы перебрать это, вы можете сделать
Iterable<Tuple2<Integer, Double>> it = myStream::iterator;
или просто
for (Tuple2<Integer, Double> item: (Iterable<Tuple2<Integer, Double>>) myStream::iterator) {
// do sth with item
}
Если ваш Tuple2
бы это ни было, есть конструктор, который принимает Map.Entry
, вы можете даже сделать
.map(Tuple2::new)
для того, чтобы достичь своей цели.
Что такое Tuple2? – Eran
Это двухэлементный кортеж. – dimson