人のリスト(idとfirstname)とマップ(idとlastnames)を新しい人のリストに組み合わせたJava 8にJavaコードを最適化するのに役立つ必要があります。 id、ファーストネーム、ラストネーム。リストを地図と組み合わせるためのJava 8の最適化
ありがとうございます!そのような
public class Test {
public static void main(String[] args) {
List<Person> personFirstnames = new ArrayList<Person>();
personFirstnames.add(new Person(1, "Mary"));
personFirstnames.add(new Person(2, "Chris"));
personFirstnames.add(new Person(3, "Emily"));
personFirstnames.add(new Person(4, "Jack"));
personFirstnames.add(new Person(5, "Henry"));
personFirstnames.add(new Person(6, "Evie"));
Map<String, String> personLastnames = new HashMap<String, String>();
personLastnames.put("1", "Adams");
personLastnames.put("2", "Hawn");
personLastnames.put("3", "Browning");
personLastnames.put("4", "Mills");
personLastnames.put("5", "Neil");
personLastnames.put("6", "Winston");
List<Person> persons = new ArrayList<Person>();
//how can i optimize the following part to Java 8?
for (Person firstnames : personFirstnames) {
for (Map.Entry<String, String> lastnames : personLastnames.entrySet()) {
if (firstnames.getId() == new Integer(lastnames.getKey())) {
Person person = new Person();
person.setId(firstnames.getId());
person.setFirstname(firstnames.getFirstname());
person.setLastname(lastnames.getValue());
persons.add(person);
}
}
}
persons.forEach(p -> System.out.println(p.getId() + " " + " " + p.getFirstname() + " " + p.getLastname()));
}
}
ここではJava 8の機能の使用に大きな価値はありません。どうしてそう思うの?ところで、私はマップのエントリセットを反復するのではなく、 'personLastnames.get(Integer.toString(firstnames.getId());')を使って姓を調べるだけです。 – stholzm