javascript
Array own sort function can be custom ordered according to an ordering
function compare(v1, v2) {
return v1-v2;
}
var values = [4,1,2,5,3];
var vv = values.sort(compare);
console.info(vv);
java
If there is a set of complex data types need to sort, the two treatments
Comparator defined by a comparator
- The definition of a Person class
public class Person {
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
}
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;
}
}
- Defined comparator
public class PersonComparator implements Comparator<Person> {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
}
- Sequence
List<Person> list = new ArrayList<Person>();
Collections.sort(list, new PersonComparator());
Complex data class inheritance Comprable
- Complex data type override compareTo (O)
public class Person implements Comparable<Person>{
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
}
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 int compareTo(Person o) {
return o.getAge()-this.getAge();
}
}
- Sequence
List<Person> list = new ArrayList<Person>();
Collections.sort(list);