স্ট্রিমগুলি আরও ভালভাবে সাজানোর জন্য জাভা 8 বিভিন্ন ইউটিলিটি এপিআই পদ্ধতি সরবরাহ করে।
যদি আপনার তালিকাটি পূর্ণসংখ্যার (বা ডাবল, লং, স্ট্রিং ইত্যাদি) এর তালিকা হয় তবে আপনি কেবল জাভা সরবরাহকারীর ডিফল্ট তুলনাকারীর সাথে তালিকাটি বাছাই করতে পারেন।
List<Integer> integerList = Arrays.asList(1, 4, 3, 4, 5);
ফ্লাইতে তুলনামূলক তৈরি করা হচ্ছে:
integerList.stream().sorted((i1, i2) -> i1.compareTo(i2)).forEach(System.out::println);
জাভা 8 দ্বারা সরবরাহিত ডিফল্ট তুলনামূলক সহ যখন কোনও আর্গুমেন্ট সাজানো হয়নি ():
integerList.stream().sorted().forEach(System.out::println);
যদি আপনি একই তালিকাটি বিপরীত ক্রমে সাজান করতে চান:
integerList.stream().sorted(Comparator.reverseOrder()).forEach(System.out::println);
যদি আপনার তালিকাটি ব্যবহারকারী সংজ্ঞায়িত সামগ্রীর তালিকা হয় তবে:
List<Person> personList = Arrays.asList(new Person(1000, "First", 25, 30000),
new Person(2000, "Second", 30, 45000),
new Person(3000, "Third", 35, 25000));
ফ্লাইতে তুলনামূলক তৈরি করা হচ্ছে:
personList.stream().sorted((p1, p2) -> ((Long)p1.getPersonId()).compareTo(p2.getPersonId()))
.forEach(person -> System.out.println(person.getName()));
Comparator.comperingLong () পদ্ধতিটি ব্যবহার করে (আমাদের তুলনাডুবল () রয়েছে, তুলনাও () পদ্ধতিগুলি):
personList.stream().sorted(Comparator.comparingLong(Person::getPersonId)).forEach(person -> System.out.println(person.getName()));
Comparator.compering () পদ্ধতি ব্যবহার করে (জেনেরিক পদ্ধতি যা সরবরাহকৃত পদ্ধতির উপর ভিত্তি করে তুলনা করে):
personList.stream().sorted(Comparator.comparing(Person::getPersonId)).forEach(person -> System.out.println(person.getName()));
আমরা তখন (কম্পিউটার) পদ্ধতিটি ব্যবহার করে শৃঙ্খলাবদ্ধ করতে পারি:
personList.stream().sorted(Comparator.comparing(Person::getPersonId).thenComparing(Person::getAge)).forEach(person -> System.out.println(person.getName()));
ব্যক্তি শ্রেণি
public class Person {
private long personId;
private String name;
private int age;
private double salary;
public long getPersonId() {
return personId;
}
public void setPersonId(long personId) {
this.personId = personId;
}
public Person(long personId, String name, int age, double salary) {
this.personId = personId;
this.name = name;
this.age = age;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
list.sort(Comparator.comparing(o -> o.getItem().getValue()));
আমার কাছে নতুন ছিল দুর্দান্ত!