TreeSet使用Comparator
/**
* 解耦方式,业务排序类
*/
import java.util.Arrays;
import java.util.TreeSet;
public class TreeSet1 {
public static void main(String[] args){
Human h1=new Human("zhang",100);
Human h2=new Human("zhan",68);
Human h3=new Human("zha",399);
Human h4=new Human("zh",300);
Human h5=new Human("z",10);
TreeSet<Human> set=new TreeSet<Human>(//使用业务的排序类(匿名类)
new java.util.Comparator<Human>(){
@Override
public int compare(Human o1, Human o2) {
return o1.getHandsome()-o2.getHandsome();
}
}
);
set.add(h1);//在添加时就已经在排序了
set.add(h2);
set.add(h3);
set.add(h4);
set.add(h5);
System.out.println(set);
}
}
public class Human {
private final String name;
private final int handsome;
public Human(){
name=null;
handsome=0;
}
public Human(String name,int handsome) {
this.name = name;
this.handsome=handsome;
}
public int getHandsome() {
return handsome;
}
public String getName() {
return name;
}
public String toString(){
return "姓名:"+this.name+"帅:"+this.handsome+"\n";
}
}
TreeSet使用Comparable
/**
* 实体类实现Comparable接口
*/
import java.util.Collections;
import java.util.TreeSet;
public class TreeSet2 {
public static void main(String[] args){
Woker w1=new Woker("农民工",8000);
Woker w2=new Woker("程序员",6000);
Woker w3=new Woker("清洁工",9000);
TreeSet<Woker> set=new TreeSet<Woker>();
set.add(w1);
set.add(w2);
set.add(w3);
System.out.println(set);
}
}
public class Woker implements Comparable<Woker>{
private String type;
public Woker() {
}
public Woker(String type, double salary) {
this.type = type;
this.salary=salary;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
private double salary;
@Override
public int compareTo(Woker o) {
return -(this.salary>o.salary?1:(this.salary==o.salary)?0:-1);
}
public String toString(){
return "工种:"+this.type+" 工资:"+this.salary+"\n";
}
}
TreeMap使用Comparator
import java.util.Set;
import java.util.TreeMap;
public class TreeMap1 {
public static void main(String[] args){
Human h1=new Human("zhang",100);
Human h2=new Human("zhan",68);
Human h3=new Human("zha",399);
TreeMap<Human,String> map=new TreeMap<Human,String>( new java.util.Comparator<Human>(){
@Override
public int compare(Human o1, Human o2) {
return o1.getHandsome()-o2.getHandsome();
}
});
map.put(h1,"z");
map.put(h2,"z");
map.put(h3,"z");
//查看键
Set<Human> human=map.keySet();
System.out.println(human);
}
}
TreeMap使用Comparable
import java.util.TreeMap;
public class TreeMap2 {
public static void main(String[] args){
Woker w1=new Woker("农民工",8000);
Woker w2=new Woker("程序员",6000);
Woker w3=new Woker("清洁工",9000);
TreeMap<Woker,String> map=new TreeMap<>();
map.put(w1,"z");
map.put(w2,"z");
map.put(w3,"z");
System.out.println(map.keySet());
}
}