本帖最后由 曾运 于 2011-12-28 19:10 编辑
- import java.util.*;
- public class HashMapDemo
- {
- public static void main(String[] args)
- {
- HashMap<String, String> map=new HashMap<String, String>();
- map.put("1", "11111");
- map.put("4", "44444");
- map.put("3", "33333");
- map.put("2", "22222");
- map.put("5", "55555");
- //遍历集合的内容
- for(Map.Entry<String,String> me:map.entrySet())
- {
- System.out.println(me.getKey()+"--->"+me.getValue());
- }
- }
- }
复制代码 以上代码输出结果是Key是无序的
HashMap自定义类的key 如何排序:- import java.util.*;
- public class TreeMapDemo
- {
-
- public static void main(String[] args)
- {
-
- TreeMap<Person,String> map=new TreeMap<Person, String>();
-
-
-
- map.put(new Person("tom",20), "美国佬");
- map.put(new Person("lily",15), "英国妞");
- map.put(new Person("lulu",10), "日本女");
- map.put(new Person("rose",18), "德国mm");
-
-
-
- //遍历集合的内容
- for(Map.Entry<Person,String> me:map.entrySet())
- {
- System.out.println(me.getKey()+"--->"+me.getValue());
- }
- }
- }
- /*
- * 自定义类可以实现Comparable接口让对象具有比较性,从而达到排序的目的
- 另外还可以自定义外部比较器,即实现Comparator接口,
- 然后将比较器通过TreeMap的构造函数传入,让集合具有比较性,从而达到排序目的。
- */
- class Person implements Comparable<Person>
- {
- String name;
- int age;
- Person(String name,int age)
- {
- this.name=name;
- this.age=age;
- }
-
- public String toString()//重写toString 方法
- {
- return "姓名:"+this.name+" 年龄:"+this.age;
- }
- //按照年龄进行排序
- public int compareTo(Person p)
- {
- if(this.age>p.age)
- return 1;
- if(this.age<p.age)
- return -1;
- return 0;
- }
- }
复制代码 输出结果:(按key中的年龄排序)
姓名:lulu 年龄:10--->日本女
姓名:lily 年龄:15--->英国妞
姓名:rose 年龄:18--->德国mm
姓名:tom 年龄:20--->美国佬
TreeMap中如果key是包装类或者String类会自动进行key排序(包装类或者String类的对象都有比较性)- import java.util.*;
- public class TreeMapDemo11
- {
- public static void main(String[] args)
- {
- TreeMap<Integer,String> map=new TreeMap<Integer, String>();
-
- map.put(2, "222");
- map.put(5, "555");
- map.put(3, "333");
- map.put(4, "444");
- map.put(1, "111");
-
- //遍历结合的内容
- for (Map.Entry<Integer, String> me:map.entrySet())
- {
- System.out.println(me.getKey()+"--->"+me.getValue());
- }
-
- /*
- 输出结果: (KEY自动进行排序)
- 1--->111
- 2--->222
- 3--->333
- 4--->444
- 5--->555
- */
- }
- }
复制代码 |