Giriş
Static factory metodudur. İki tane int değeri karşılaştıran Comparator nesnesi döner. min (), max (), sort (), gibi işlemlerde kullanılabilir.Eskiden şöyle yazardık.
List<String> al = Arrays.asList("45", "186", "185", "55", "51", "51", //
"22", "78", "64", "26", "49", "21");
Collections.sort(al, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.compare(Integer.parseInt(o1), Integer.parseInt(o2));
}
});
Örnek - MaxŞimdi şöyle yazıyoruz.
someStrings.stream().max(Comparator.comparingInt(String::length)).get()
Örnek - SortŞimdi şöyle yazıyoruz.
Collection.sort(al, Comparator.comparingInt(Integer::parseInt));
İki alan göre çalışan comparator şöyledir.Collection.sort(personList, Comparator
.comparingInt(Person::getAge)
.thenComparing(Person::getSurname));
Örnek
Listede olmayan nesneleri en başa alan bir sort için şöyle yaparız
List<String> currencies = List.of("PLN","EUR","USD","GBP", "CHF");
Comparator<Object> objectComparator = Comparator.comparingInt(currencies::indexOf);
System.out.println(objectComparator.compare("JPY", "PLN")); //-1
System.out.println(objectComparator.compare("JPY", "TTT")); //0
System.out.println(objectComparator.compare("CHF", "GBP")); //1
Hiç yorum yok:
Yorum Gönder