黑马程序员技术交流社区

标题: Map集合常用类Demo [打印本页]

作者: 徐青松    时间: 2014-2-20 22:39
标题: Map集合常用类Demo
Map有哪些常用类,各有什么特点?
public class TestDemo {

        public static void main(String[] args) {
                MapTest();
        }
//定义Map集合测试方法
        private static void MapTest()
        {
                //定义一个Hashtable对象
                Map hashTable=new Hashtable<String, Integer>();
                hashTable.put("liuming", 23);
                hashTable.put("jinyao", 22);
                hashTable.put("ganbin", 25);
                //hashTable.put(null,null)//hashTable.put(null,null)会运行出错,因为Hashtable不允许存null值或null键
               
                //Map集合获取集合的Value值有两种方式,分别是使用keySet()和entrySet()方法实现
                //这里使用keySet()方法获取value值,输出结果为:25 22 23
                Set keySet=hashTable.keySet();
                for(Iterator it=keySet.iterator();it.hasNext();)
                {
                        System.out.print(hashTable.get(it.next())+" ");
                }
                System.out.println();
                //定义一个HashMap对象
                Map hashMap=new HashMap<String, Integer>();
                hashMap.put("xiaoming", 12);
                hashMap.put("xiaohua", 13);
                hashMap.put("gouzi", 15);
                hashMap.put(null,null);
               
                //这里使用获取Map集合Value值的第二种方法:entrySet()方法来实现
                //entrySet()返回类型是Set<Map.Entry<k,v>>集合,里面存的类型是:键和值的映射关系。即将Map集合中映射关系存入到Set集合中
                //然后通过Set集合的迭代方法取出关系,通过Map.Entry的getKey()和getValue()分别取出key键和value值。
                Set<Map.Entry<String, Integer>> entrySet=hashMap.entrySet();
                Iterator<Map.Entry<String, Integer> > iterator=entrySet.iterator();
                while (iterator.hasNext()) {
                        Map.Entry<String, Integer> me=iterator.next();
                        String key=me.getKey();
                        Integer value=me.getValue();
                        System.out.print(value+" ");
                }
                System.out.println();
                //定义TreeMap集合,对存入集合中的元素进行排序
                Map treeMap =new TreeMap<String, String>();
                treeMap.put("bb", "yuwen");
                treeMap.put("ee", "shuxue");
                treeMap.put("gg", "yinyu");
                treeMap.put("aa", "wuli");
                treeMap.put("cc", "huaxue");
                treeMap.put("dd", "shengwu");
               
                //这里采用entrySet()方法来取元素,结果为:aa-wuli bb-yuwen cc-huaxue dd-shengwu ee-shuxue gg-yinyu
                //通过取得结果我们会发现TreeMap按键对存入的元素进行了排序。联想到TreeSet,我们可以知道TreeSet和TreeMap都具有排序功能
                Set<Map.Entry<String, String>> teSet=treeMap.entrySet();
                Iterator<Map.Entry<String, String>> iterator2=teSet.iterator();
                while (iterator2.hasNext()) {
                        Map.Entry<String, String> me=iterator2.next();
                        String key=me.getKey();
                        String value=me.getValue();
                        System.out.print(key+"-"+value+" ");
                }
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2