Java集合基础之map双列集合

一、双列集合结构

1、类型区别:

  1. HashMap
    它是最常用的map,它通过hashcode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。他是非同步的。它允许一个key为null,如果不止一个的话它会被覆盖啊,但它允许多个value为null;

  2. TreeMap
    它能把它保存的记录根据key值默认升序排序,也可以指定顺序。当Iterator遍历过TreeMap后,得到的记录是拍过序的。TreeMap不允许key值为null。它是非同步的;

  3. HashTable
    与hashmap类似,但不同的是,它不允许key-value值为空。它支持线程同步,即任意一个线程只能写入一个hashtable,也因此它比较慢;

  4. LinkedHashMap
    它保存了记录的插入顺序,即在Iterator遍历LinkedHashMap的时候,得到的记录肯定是先插入的。在遍历时会比hashmap慢,key-value值均允许为null,它是非同步的。

在这里插入图片描述

2、什么是双列集合?
首先,对比之前的collection单列集合来讲,map集合是存储key-value键值对的的集合,形象理解一下就是,单列集合就是单身,双列集合就是夫妻。
3、list与map的区别与联系?

  • 首先list与map都是Java中常用的容器,都是接口;
  • 然后,结构上来说,list存储单个元素,map存储成对的key-value元素;
  • list存储有序的元素,但map存放无序(存储无序);
  • list中允许存储重复值,但map中key是唯一的(如果对应了重复的,后面的value会覆盖,最终存储的也仍然是唯一的一个key-value);

二、map中的常见用法

1、map的初始化及插入、删除、获取、清空:

Map<String,String> map = new HashMap<>();//初始化
map.put("key1","value1");//插入
map.remove("key1");	//删除
map.get("key1");	//获取
map.clear();		//清空

这些操作就比较简单,就不贴例码了。
2、几种遍历方式:

1.for循环遍历

        for(Map.Entry<String, String> s:set){
            System.out.print(s.getKey() + "  ");
            System.out.print(s.getValue() + "  ");
        }

2、迭代器遍历

        Iterator<Map.Entry<String,String>> iter = set.iterator();
        while(iter.hasNext()){
            Map.Entry<String,String> entry = iter.next();
            System.out.print(entry.getKey() + "  ");
            System.out.print(entry.getValue() + "  ");
        }

3、常用API
在这里插入图片描述

发布了45 篇原创文章 · 获赞 11 · 访问量 4829

猜你喜欢

转载自blog.csdn.net/weixin_44187963/article/details/94981968