Auryn Vansteenkiste:
私はキーでハッシュマップのリンクリストをソートしてみてください
募集出力:
[{ADDRES = Astreet、NAME =アロン}、{ADDRES = Bstreet、NAME =バーニー}、{ADDRES = Cstreet、NAME =キャロル}]
//Making Contacts
HashMap contact1 = new HashMap();
HashMap contact2 = new HashMap();
HashMap contact3 = new HashMap();
contact1.put("Name", "Bernie");
contact1.put("Addres", "Bstreet");
contact2.put("Name", "Aron");
contact2.put("Addres", "Astreet");
contact3.put("Name", "Carol");
contact3.put("Addres", "Cstreet");
//Making ContactBook
LinkedList contactBook = new LinkedList();
contactBook.add(contact1);
contactBook.add(contact2);
contactBook.add(contact3);
System.out.println(contactBook);
ジェイソン:
何がやりたいことは、これらのエントリを表しPOJOを作成し、リストに保存しています。その後、名前や住所などの基準に基づいて、そのリストを並べ替えることができます。
class Person {
private final String name;
private final String address;
Person(String name, String address) {
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
@Override
public String toString() {
return String.format("name=%s, address=%s", name, address);
}
}
List<Person> people = new ArrayList<>(Arrays.asList(
new Person("Bernie", "Bstreet"),
new Person("Aron", "Astreet"),
new Person("Carol", "Cstreet")
));
List<Person> sortedByName = people.stream()
.sorted(Comparator.comparing(Person::getName))
.collect(Collectors.toList());
List<Person> sortedByAddress = people.stream()
.sorted(Comparator.comparing(Person::getAddress))
.collect(Collectors.toList());