/**
* TreeMap不能直接增强for循环
* TreeSet和TreeMap不同于其他的集合的特殊的特点是插入的元素类型需要指定比较规则
*/
public class TreeMapTest {
public static void main(String[] args){
TreeMap<Animal,Integer> treeMap =new TreeMap<>(new Comparator<Animal>() {
@Override
public int compare(Animal o1, Animal o2) {
return o1.age-o2.age;
}
});
treeMap.put(new Animal(20),10);
treeMap.put(new Animal(3000),10);
treeMap.put(new Animal(500),10);
Set<Map.Entry<Animal, Integer>> entrySet = treeMap.entrySet();
for (Map.Entry<Animal, Integer> animalIntegerEntry : entrySet) {
System.out.println(animalIntegerEntry);
}
TreeMap<String,String > treeMap1=new TreeMap<>();
treeMap1.put("sadf", "asfd");
// treeMap1.for TreeMap 类型的不能直接增强for循环
//
//
TreeSet<Animal> treeSet =new TreeSet<>(new Comparator<Animal>() {
@Override
public int compare(Animal o1, Animal o2) {
return o1.age-o2.age;
}
});
treeSet.add(new Animal(20));
treeSet.add(new Animal(230));
treeSet.add(new Animal(201));
}
}
//--------------------------------
class TreeMapTestComparator /*implements Comparator<Animal>*/ {
/* @Override
public int compare(Animal o1, Animal o2) {
return o1.age-o2.age;
}*/
}
class Animal{
int age;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Animal)) return false;
Animal animal = (Animal) o;
return age == animal.age;
}
@Override
public int hashCode() {
return Objects.hash(age);
}
public Animal() {
}
public Animal(int age) {
this.age = age;
}
@Override
public String toString() {
return "Animal{" +
"age=" + age +
'}';
}
}
TreeSet和TreeMap排序集合,排序的实现
最新推荐文章于 2022-09-21 10:31:38 发布