java集合--双链

Map集合特点;
1,内部存储的都是键key值value对。
2,必须要保证的键的唯一性。

Map常见功能。
1,存储。v put(k,v);
2,获取。v get(k);
3,移除。v remove(k);
4,Set<k> keySet();

        Set<String> keyset = map.keySet();//保证唯一性,用set来接受map中所有的键
        for(String key:keyset){
            System.out.println("key:"+key+" value:"+map.get(key));
        }

5,Set<Map.Entry<k,v>> entrySet();
将map集合中映射关系存储到了Set集合中.映射关系:其实就是指键和值的对应关系。映射关系是什么类型的呢? Map.Entry,就是数据类型,其中.是内部的属性

        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();  
       //增强For循环    
        for(Map.Entry<String, Integer> e: entrySet ){
            System.out.println("key:"+e.getKey()+" value:"+e.getValue());
        }
        //使用迭代器
        Iterator<Map.Entry<String, String>> it = entrySet.iterator();
        //遍历Set中的映射关系对象。
        while(it.hasNext()){
            Map.Entry<String, String> me = it.next();//取到了映射关系对象。
            //获取键。
            String key = me.getKey();
            //获取值。
            String value = me.getValue();
            System.out.println(key+"-----"+value);
        }

6,Collection<v> values();

总结:
map集合没有迭代器,取出元素的方式:将map集合转成单列结合,在使用单列集合的迭代器就可以了。map集合也不能直接被foreach循环遍历。

关于Map.Entry。实际是map接口中定义了Entry接口
至于为何要定义内部接口,参见内部接口定义原理

Map

  • |--Hashtable:数据结构:哈希表。是同步的,不允许null作为键和值。被hashMap替代。
    • |--Properties:属性集,键和值都是字符串(无泛型),而且可以结合流进行键值的操作。IO流中频繁使用。
  • |--HashMap:数据结构:哈希表。不是同步的,允许null作为键和值。
    • |--LinkedHashMap:基于链表+哈希表。可以保证map集合有序(存入和取出的顺序一致)。
  • |--TreeMap:数据结构:二叉树。不是同步的。可以对map集合中的键进行排序。

一道题目:
"werertrtyuifgkiryuiop",获取字符串中每一个字母出现的次数。
要求返回结果个格式是 a(1)b(2)d(4)......

char[] chs = str.toCharArray();
        Map<Character, Integer> map = new TreeMap<Character, Integer>();
        for (Character s : chs) {
            Integer value = map.get(s);         
            int count = 0;          
            if(value!=null){
                count = value;
            }
            count ++;
            map.put(s, count);
        }
        StringBuilder sb = new StringBuilder();
        //2,遍历map集合。
        for(Character key  : map.keySet()){
            Integer value = map.get(key);   
            sb.append(key+"("+value+")");
        }

Collections: 集合框架中的用于操作集合对象 工具类。
* 都是静态的工具方法。
* 1,获取Collection最值。
* 2,对List集合排序,也可以二分查找。
* 3,对排序逆序。
* 4,可以将非同步的集合转成同步的集合。
* Xxx synchronizedXxx(Xxx) List synchronizedList(List)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,289评论 0 16
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,518评论 0 3
  • 一、集合框架的概述 1、概述: 1、简述:所谓集合,就是为方便对多个对象的操作,对对象进行存储。集合就是存储对象最...
    玉圣阅读 536评论 0 4
  • title: java集合框架学习总结 tags:集合框架 categories:总结 date: 2017-03...
    行径行阅读 1,708评论 0 2
  • 1 Map集合N016 1.1Map接口 【 • 实现Map接口的集合类用来存储"键-值"映射对。 • JDK...
    征程_Journey阅读 398评论 0 0