私はList<Computer>
を持っています。すべてのコンピュータには、CPUとホスト名のリストがあります。 だから、私は持っているとしますJava8は、マップ<Object、String>内の[List <Object>、String]を変換します。
List<Computer> computers
私は
List<CPU> CPUs = computer.getCPUs();
を呼び出すことができますし、私は、Streamsを使用している何をしたいのか
String hostname = computer.getHostName();
を呼び出すことができ、含まれている地図を入手キーとしてCPUを、Stringとしてホスト名を指定します。同じコンピュータ内の同じCPUがホスト名を複製します。
どうすればいいですか?
前Java8のコードは、これを次のようになります。それはComputer
インスタンスのためにあなたのCPU
クラスは後方参照を持っている
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コードを追加しました –
ストリームとラムダの解決策はあなたよりも優れていると思います –