У меня есть List<Computer>
. Каждый компьютер имеет список CPU и имя хоста. Итак, предположим, что у меня есть:Java8 transform a [Список <Object>, String] на карте <Объект, строка>
List<Computer> computers
Я могу назвать
List<CPU> CPUs = computer.getCPUs();
и я могу назвать
String hostname = computer.getHostName();
То, что я хочу сделать, используя потоки, получить карту, которая содержит как ключ CPU и как String имя хоста. Тот же процессор внутри тех же компьютеров будет реплицировать имя хоста.
Как я могу это сделать?
Pre Java8 код будет таким:
public Map<CPU, String> getMapping(List<Computer> computers) {
Map<CPU, String> result = new HashMap<>();
for (Computer computer : computers) {
for (CPU cpu : computer.getCPUs()) {
result.put(cpu, computer.getHostname());
}
}
return result;
}
Какова связь между '' computer' и computers'. Если вы хотите, чтобы ваш вопрос выдержал, добавьте код pre-Java 8, который выполнит вашу задачу. –
спасибо, я добавил код pre Java8 –
Я думаю, что нет потоков и решений lambdas, которые лучше, чем тот, который у вас уже есть –