JAVA- simplified array of objects for sorting expression Lambde

Based approach

Step one: Create a basic data type

Data: name, age

public class Dog {
    private String name;
    private int age;
    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 Dog(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public Dog() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Override
    public String toString() {
        return "Dog [name=" + name + ", age=" + age + "]";
    }
    
}

Step two: create an object class sorting methods

Order by: Sort by age

import java.util.Comparator;

public class DogComparator implements Comparator<Dog>{

    @Override
    public int compare(Dog o1, Dog o2) {
        // TODO Auto-generated method stub
        return o1.getAge()-o2.getAge();
    }
    
}

Step Three: class object that implements array sort

import java.util.Arrays;

public class Test {

    public static void main(String[] args) {
        
        Dog[] dogs= {new Dog("愤愤",1),new Dog("菲菲",4),new Dog("Tom",2)};
        Arrays.sort(dogs,new DogComparator());
        System.out.println(Arrays.toString(dogs));
    }

}

Run Results:
[Dog [name = disgust, age = 1], Dog [ name = Tom, age = 2], Dog [name = Felice, age = 4]]

Optimization of the sort an array of objects with Lambda expressions

Step one: Create a basic data type

Data: name, age

public class Students {
    private String name;
    private int age;
    public Students(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public Students() {
        super();
        // TODO Auto-generated constructor stub
    }
    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;
    }
    @Override
    public String toString() {
        return "Students [name=" + name + ", age=" + age + "]";
    }
    
}

Step two: an object that implements array sort class

import java.util.Arrays;
import java.util.Comparator;

public class TestDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Students[]students= {
                new Students("菲菲",15),
                new Students("盖盖",18),
                new Students("甘甘",12),
                new Students("丽丽",19)};
        
        //排序方法一
        Arrays.sort(students, new Comparator<Students>(){
            public int compare(Students o1,Students o2) {
            return o1.getAge()-o2.getAge();}
        });
        System.out.println(Arrays.toString(students));
        
        //排序方法二
        //Comparator<Students> c=(o1,o2)->o1.getAge()-o2.getAge();
        Arrays.sort(students,(o1,o2)->o1.getAge()-o2.getAge());
        System.out.println(Arrays.toString(students));
    }
}

Run Results:
[Students. [Name = Gan Gan, age = 12], Students [ name = Felice, age = 15], Students [ name = cap, age = 18], Students [ name = Lily, age = 19] ]
[Students. [name = Gan Gan, age = 12], Students [ name = Felice, age = 15], Students [ name = cap, age = 18], Students [ name = Lily, age = 19]]

Guess you like

Origin blog.csdn.net/weixin_33736649/article/details/90985269