/*! Ads Here */

Sort nested list java Đầy đủ

Thủ Thuật Hướng dẫn Sort nested list java 2022


Pro đang tìm kiếm từ khóa Sort nested list java được Cập Nhật vào lúc : 2022-01-06 12:55:07 . Với phương châm chia sẻ Bí kíp về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi tìm hiểu thêm nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha.


Java 8 example to sort stream of objects by multiple fields using comparators and Comparator.thenComparing() method. This method returns a lexicographic-order comparator with another comparator. It gives the same effect as SQL group by clause.


Nội dung chính


  • 1. Create comparators for multiple fields

  • 2. Java stream sort on multiple fields example

  • Was this post helpful?


  • 1. Create comparators for multiple fields


    To sort on multiple fields, we must first create comparator for each field on which we want to sort the stream. Then chain each comparator in desired order to give group by effect on complete sorting.


    //first name comparator

    Comparator<Employee> compareByFirstName = Comparator.comparing( Employee::getFirstName );

    //last name comparator

    Comparator<Employee> compareByLastName = Comparator.comparing( Employee::getLastName );

    //Compare by first name and then last name (multiple fields)

    Comparator<Employee> compareByFullName = compareByFirstName.thenComparing(compareByLastName);

    //Using Comparator – pseudo code

    list.stream().sorted( comparator ).collect();


    2. Java stream sort on multiple fields example


    Example of using thenComparing() to create Comparator which is capable of sorting by multiple fields.


    import java.util.ArrayList;

    import java.util.Comparator;

    import java.util.List;

    import java.util.stream.Collectors;

    public class Main


    public static void main(String[] args)


    ArrayList<Employee> employees = getUnsortedEmployeeList();

    //Compare by first name and then last name

    Comparator<Employee> compareByName = Comparator

    .comparing(Employee::getFirstName)

    .thenComparing(Employee::getLastName);

    List<Employee> sortedEmployees = employees.stream()

    .sorted(compareByName)

    .collect(Collectors.toList());

    System.out.println(sortedEmployees);


    private static ArrayList<Employee> getUnsortedEmployeeList()


    ArrayList<Employee> list = new ArrayList<>();

    list.add( new Employee(2l, “Lokesh”, “Gupta”) );

    list.add( new Employee(1l, “Alex”, “Gussin”) );

    list.add( new Employee(4l, “Brian”, “Sux”) );

    list.add( new Employee(5l, “Neon”, “Piper”) );

    list.add( new Employee(3l, “David”, “Beckham”) );

    list.add( new Employee(7l, “Alex”, “Beckham”) );

    list.add( new Employee(6l, “Brian”, “Suxena”) );

    return list;


    Program Output.


    [E[id=7, firstName=Alex, lastName=Beckham],

    E [id=1, firstName=Alex, lastName=Gussin],

    E [id=4, firstName=Brian, lastName=Sux],

    E [id=6, firstName=Brian, lastName=Suxena],

    E [id=3, firstName=David, lastName=Beckham],

    E [id=2, firstName=Lokesh, lastName=Gupta],

    E [id=5, firstName=Neon, lastName=Piper]]


    Drop me your questions in comments section related to sorting on multiple fields in stream of objects in Java 8.


    Happy Learning !!


    Reference:


    Comparator.thenComparing() Java Doc


    Was this post helpful?


    Let us know if you liked the post. Thats the only way we can improve.YesNo


    Reply

    4

    0

    Chia sẻ


    Share Link Tải Sort nested list java miễn phí


    Bạn vừa Read Post Với Một số hướng dẫn một cách rõ ràng hơn về Review Sort nested list java tiên tiến và phát triển nhất Chia SẻLink Tải Sort nested list java Free.



    Giải đáp vướng mắc về Sort nested list java


    Nếu sau khi đọc nội dung bài viết Sort nested list java vẫn chưa hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Ad lý giải và hướng dẫn lại nha

    #Sort #nested #list #java

*

Đăng nhận xét (0)
Mới hơn Cũ hơn

Responsive Ad

/*! Ads Here */

Billboard Ad

/*! Ads Here */