Loading...
GeorgiStalev avatar GeorgiStalev 24 Точки

Maps Java Streams

Малко помощ, ако може:

Как да принтирам Value-Стойността на вложената Карта , по долу е кода.

import java.io.BufferedReader;
import java.io.IOException;
import java.util.LinkedHashMap;


public class Main {
    public static void main(String[] args) throws IOException {

        LinkedHashMap<String, LinkedHashMap<String, Integer>> map = new LinkedHashMap<>();
        LinkedHashMap<String, Integer> nestedMap = new LinkedHashMap<>();

        String country = "Bulgaria";
        String city = "Sofia";
        int population = 1000000;

        nestedMap.put(city, population);
        map.put(country, nestedMap);

        map.entrySet().stream().forEach(entry -> {
            System.out.printf("%s (total population: %d)%n", entry.getKey(), // TO DO Finish here);
        });

    }
}
Тагове:
0
Java Advanced
plamen911 avatar plamen911 80 Точки

http://pastebin.com/BineZezf

0
GeorgiStalev avatar GeorgiStalev 24 Точки

Мерси а има ли нещо по кратко

0
ibosev avatar ibosev 54 Точки

Ами по начина, по който си започнал задачата влагаш нов HashMap като стойност и няма как без да итерираш през неговите стойности. Това пак можеш да го направиш със stream. 

        map.entrySet().stream().forEach(entry -> {
            // тук ще имаш достъп до двойката ключ-стойност (България - HashMap(String, Integer))
            entry.getValue().entrySet().stream().forEach(innerEntry-> {
                // тук ще имаш достъп до двойката ключ-стойност (София - 1000000) и други, ако има такива (в случая няма)
            });
        });

Не знам задачата точно каква е, но предполагам, че ако имаш още градове, ще трябва да добавиш логика за сумиране на популацията им в променлива и да принтираш резулата след вътрешния стрийм.

 

0
GeorgiStalev avatar GeorgiStalev 24 Точки

Да мерси, просто гледам една задача от Maps, на която имам решението, но не видях, че те запазват данните по различен начин в картите и почнах да се чудя как така го вади това Value :)

Тъй като едно е да препиша задачата друго е да я разбера.

0
21/01/2017 13:52:45
ibosev avatar ibosev 54 Точки

Аз затова се опитах да ти покажа с коментарите от къде до какво имаш достъп. Предполагам знаеш, че речниците (HashMap) пазят двойки ключ-стойност. Със stream-а можеш да итерираш през тези key-value pairs с forEach(), като така достъпваш entries (разбирай двойките). Когато value-то ти е някаква друга колекция, можеш да итерираш и нея, ако това е което целиш. Всичко придобива смисъл след като сложиш един брейкпойнт и дебъгнеш за да проследиш с какво разполагаш.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.