TreeMap是最近遇到的,它可以根据key值自动排序,默认状态是对key进行递增排序,也可以自定义
treemap的存放顺序和实际位置并不相同,算是无序集合
treemap的常用 方法在下面 (转载)
public class TreeMapTest {
public static void main(String[] agrs){
//创建TreeMap对象:
TreeMap treeMap = new TreeMap();
System.out.println("初始化后,TreeMap元素个数为:" + treeMap.size());
//新增元素:
treeMap.put("hello",1);
treeMap.put("world",2);
treeMap.put("my",3);
treeMap.put("name",4);
treeMap.put("is",5);
treeMap.put("huangqiuping",6);
treeMap.put("i",6);
treeMap.put("am",6);
treeMap.put("a",6);
treeMap.put("developer",6);
System.out.println("添加元素后,TreeMap元素个数为:" + treeMap.size());
//遍历元素:
Set> entrySet = treeMap.entrySet();
for(Map.Entry entry : entrySet){
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("TreeMap元素的key:"+key+",value:"+value);
}
//获取所有的key:
Set keySet = treeMap.keySet();
for(String strKey:keySet){
System.out.println("TreeMap集合中的key:"+strKey);
}
//获取所有的value:
Collection valueList = treeMap.values();
for(Integer intValue:valueList){
System.out.println("TreeMap集合中的value:" + intValue);
}
//获取元素:
//获取集合内元素key为"huangqiuping"的值
Integer getValue = treeMap.get("huangqiuping");
//获取集合内第一个元素
String firstKey = treeMap.firstKey();
//获取集合内最后一个元素
String lastKey =treeMap.lastKey();
//获取集合内的key小于"huangqiuping"的key
String lowerKey =treeMap.lowerKey("huangqiuping");
//获取集合内的key大于等于"huangqiuping"的key
String ceilingKey =treeMap.ceilingKey("huangqiuping");
//获取集合的key从"a"到"huangqiuping"的元素
SortedMap sortedMap =treeMap.subMap("a","my");
//删除元素:
//删除集合中key为"huangqiuping"的元素
Integer removevalue = treeMap.remove("huangqiuping");
//清空集合元素:
treeMap.clear();
//判断方法:
//判断集合是否为空
boolean isEmpty = treeMap.isEmpty();
//判断集合的key中是否包含"huangqiuping"
boolean isContain = treeMap.containsKey("huangqiuping");
}
}
排序,和自定义排序如下(转载)
public class SortedTest implements Comparable{ private int age; public SortedTest(int age){ this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //自定义对象,实现compareTo(T o)方法: public int compareTo(SortedTest sortedTest) { int num = this.age - sortedTest.getAge(); //为0时候,两者相同: if(num==0){ return 0; //大于0时,传入的参数小: }else if(num>0){ return 1; //小于0时,传入的参数大: }else{ return -1; } } } public class TreeMapTest { public static void main(String[] agrs){ //自然顺序比较 naturalSort(); } //自然排序顺序: public static void naturalSort(){ //第一种情况:Integer对象 TreeMap treeMapFirst = new TreeMap (); treeMapFirst.put(1,"huangqiuping"); treeMapFirst.put(6,"huangqiuping"); treeMapFirst.put(3,"huangqiuping"); treeMapFirst.put(10,"huangqiuping"); treeMapFirst.put(7,"huangqiuping"); treeMapFirst.put(13,"huangqiuping"); System.out.println(treeMapFirst.toString()); //第二种情况:SortedTest对象 TreeMap treeMapSecond = new TreeMap (); treeMapSecond.put(new SortedTest(10),"huangqiuping"); treeMapSecond.put(new SortedTest(1),"huangqiuping"); treeMapSecond.put(new SortedTest(13),"huangqiuping"); treeMapSecond.put(new SortedTest(4),"huangqiuping"); treeMapSecond.put(new SortedTest(0),"huangqiuping"); treeMapSecond.put(new SortedTest(9),"huangqiuping"); System.out.println(treeMapSecond.toString()); } }



