TreeMap中的Key可以自动排序 详解

/*
Set添加元素用的是add,Map添加元素用的是put

如果想自动排序:1.实现Comparable接口 2.单独便捷一个比较器
*/


import java.util.*;


public class fuck15{

public static void main(String[] args){

//Map.Key存储product,value存储斤数
SortedMap products=new TreeMap();

//匿名内部类,实现一个比较器
SortedMap products=new TreeMap(new Comparator());{
public int compare(Object o1,Object o2){
double price1=this.price;
double price2=((product)o).price;

if(price1>price2){
return -1;
}else if(price1 return 1;
}else{
return 0;
}
}
}

product p1=new product("西瓜",3.0);
product p2=new product("圣女果",2.0);
product p3=new product("桃子",6.0);
product p4=new product("香蕉",2.5);

products.put(p1,2.3);//这里还需要添加斤数
products.put(p2,3.4);
products.put(p3,2.3);
products.put(p4,2.4);

//遍历
//遍历Set集合要先获取key才能遍历,调用keySet方法
Set set=products.keySet();
Iterator it=set.iterator();
while(it.hasNext()){
Object k=it.next();
Object v=products.get(k);
System.out.println(k+""+v);
}
}




class product implements Comparable{

String name;
double price;

product(String name,double price){
this.name=name;
this.price=price;
}

public String toString(){
return name+""+price;
}

//实现compareTo方法
//按照商品价格排序
public int compareTo(Object o){
double price1=this.price;
double price2=((product)o).price;

if(price1>price2){
return -1;
}else if(price1 return 1;
}else{
return 0;
}


}

}

你可能感兴趣的:(java学习)