我有一個List<Computer>
。每臺計算機都有一個CPU和一個主機名的列表。 因此,假設我有:Java8在Map <Object,String>中轉換[List <Object>,String]
List<Computer> computers
我可以叫
List<CPU> CPUs = computer.getCPUs();
,我可以叫
String hostname = computer.getHostName();
我想要的,使用流做什麼,獲得含地圖作爲關鍵的CPU和作爲字符串的主機名。相同計算機內的相同CPU將複製主機名。
我該怎麼做?
預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''之間的關係。如果你想讓你的問題繼續存在,可以添加完成任務的Java 8之前的代碼。 –
謝謝,我添加了pre java8代碼 –
我認爲沒有流和lambdas解決方案比你已經有的更好 –