您编写 CustomComparator 如下:
import java.util.*;
public int compare(Object obj1 , Object obj2){
Map<String, Map<String, Integer> > map1 = (Map<String, Map<String, Integer>) obj1;
Map<String, Map<String, Integer> > map2 = (Map<String, Map<String, Integer>) obj2;
Map.Entry e1 = (Map.Entry)map1.entrySet();
Map.Entry e2 = (Map.Entry)map2.entrySet();
String brand1 = (String)e1.getKey();
String brand2 = (String)e2.getKey();
Map.Entry e3 = (Map.Entry)e1.getValue();
Map.Entry e4 = (Map.Entry)e3.getValue();
Integer price1 =(Integer) e3.getValue();
Integer price2 =(Integer) e4.getValue();
if(brand2.compareTo(brand1) != 0){
return brand2.compareTo(brand1);
}else{
price1.compareTo(price2);
}
}
}
此 Compactor 将首先按品牌名称的降序对数据进行排序,如果两个品牌具有相同的名称,那么它将按价格的升序排序。
您必须在 TreeMap 中添加数据,如下所示
Set data = new TreeSet(new CustomComparator());
//Add your data here in data object