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]]