主要记录Comparator Comparable这两个类的使用:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class T {
public static void main(String[] args) {
List<A> list = new ArrayList<A>();
A a1 = new A();
a1.setFlag(1);
A a2 = new A();
a2.setFlag(4);
A a3 = new A();
a3.setFlag(2);
A a4 = new A();
a4.setFlag(3);
list.add(a1);
list.add(a2);
list.add(a3);
list.add(a4);
for(A a:list){
System.out.println(a.getFlag());
}
System.out.println("--------------");
Collections.sort(list,new Comparator<A>() {
@Override
public int compare(A o1, A o2) {
return o1.flag>o2.flag?1:-1;
}
});
for(A a:list){
System.out.println(a.getFlag());
}
Collections.sort(list);
for(A a:list){
System.out.println(a.getFlag());
}
}
}
class A implements Comparable<A>{
int flag;
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getFlag() {
return flag;
}
public void setFlag(int flag) {
this.flag = flag;
}
@Override
public int compareTo(A o) {
return this.flag>o.flag?-1:1;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class T {
public static void main(String[] args) {
List<A> list = new ArrayList<A>();
A a1 = new A();
a1.setFlag(1);
A a2 = new A();
a2.setFlag(4);
A a3 = new A();
a3.setFlag(2);
A a4 = new A();
a4.setFlag(3);
list.add(a1);
list.add(a2);
list.add(a3);
list.add(a4);
for(A a:list){
System.out.println(a.getFlag());
}
System.out.println("--------------");
Collections.sort(list,new Comparator<A>() {
@Override
public int compare(A o1, A o2) {
return o1.flag>o2.flag?1:-1;
}
});
for(A a:list){
System.out.println(a.getFlag());
}
Collections.sort(list);
for(A a:list){
System.out.println(a.getFlag());
}
}
}
class A implements Comparable<A>{
int flag;
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getFlag() {
return flag;
}
public void setFlag(int flag) {
this.flag = flag;
}
@Override
public int compareTo(A o) {
return this.flag>o.flag?-1:1;
}
}