Java中的map详解

先看一张图片:

在这里插入图片描述

关于Collection和map关系:https://www.cnblogs.com/111testing/p/8100148.html

问题汇总:

1. Java中的map到底是什么?运行机制或者基本原理是什么?

java.util中包含Collection和Map接口,然后产生了Map类的集合。可以把它理解成一个数据字典,然后可以给每个数据对象制定代号。下次可以直接根据代号找到数据,而不用像数组、列表那样要从头到尾查找一遍。

2. 什么是Collection?

Collection集合和Map集合一样,由接口产生类,但是是单列集合体系,包含List和Set。其中List是有序的单列集合接口,存入的数据可以重复且有序,Set是无序的单列接口,存入数据不可重复。

关于Collection:https://blog.csdn.net/qq_41635282/article/details/112116998

3. 什么是Set?

是接口,也是一种Set集合,类似于一个罐子,程序可以一次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序。实际上Set就是Collection只是Set不允许包含重复元素。

*关于Set集合的实例:*https://blog.csdn.net/mashaokang1314/article/details/83721792

*关于Set集合HashSet、LinkedHashSet、TreeSet的源码分析:*https://blog.csdn.net/xiaoxiaovbb/article/details/80439643

4. 什么是java中的迭代器

集合体系中的迭代器就是遍历,集合取出元素的方式,迭代器可以取出并操作集合中的元素。

特点:每个集合都有存和取的方式,而且每个集合的数据结构不一样,所以他们存和取的动作也不一样,添加通过add()能完成添加操作,但是取的动作比较复杂,所以把取的动作封装成了对象,包含hasNext()、next()、remove()三个共同的方法,由于集合本身最知道该怎么取元素和迭代器对象需要用到集合内部的元素,所以把迭代器封装成了集合类的内部类,通过一个方法把迭代器提供给外部,就是iterator()。

5. Java中的Iterator()方法是什么?

iterator就是java中的迭代器,迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象。

*iterator迭代器的实现及相关实例:*https://www.cnblogs.com/xujian2014/p/5846128.html

*用法:*https://www.cnblogs.com/lxqiaoyixuan/p/7156944.html

6. Map集合和Collection集合的区别是什么?

Map集合是一种键和值的映射关系(双列集合),Collection集合是单列集合,只能存储一种类型的元素。

同时两者也有关系:HashSet依赖于Map接口的子类实现类HashMap,TreeSet依赖于Map接口的子实现类TreeMap。

7. HashMap遍历有哪些方法?

一种是通过keySet()获取所有的set值进行操作

Set<Integer> doubleSet = hashMap.keySet();
	for(Integer aDouble: doubleSet){
        Double value = hashMap.get(aDouble);
        System.out.println(aDouble + "=" + value);
    }//使用foreach进行遍历

Iterator<Integer> iterator = doubleSet.iterator();
		while(iterator.hasNext()){
            Integer aDouble = iterator.next();
            Double value = hashMap.get(aDouble);
           System.out.println(aDouble+"==="+value)
        }//使用迭代器进行遍历

另一种是通过HashMap的entrySet()方法,获取的返回值为Set<Entry<Key,Value>>,然后通过遍历获取到HashMap钟的所有值。

Set<Map.Entry<Integer,Double>> entries = hashMap.entrySet();
	for(Map.Entry<Integer,Double> entry : entries){
        Integer key = entry.getKey();
        Double value = entry.getValue();
        System.out.println(key+"==="+value);
    }

其他:

*Java讲Map和Collection集合细节最详细的一篇:*https://www.cnblogs.com/111testing/p/8100148.html

*Java基础 Map集合:*https://blog.csdn.net/kai46385076/article/details/94769759

阅读笔记:

  1. Map集合的概念和相关方法。

  2. 通过阅读能更了解遍历map方式的基本原理。

*Java中的Map及其使用:*https://blog.csdn.net/taraex/article/details/90243965

阅读笔记:主要讲Map集合的子类的用法和Collection集合的用法。

*Java Map集合类简介:*https://www.oracle.com/cn/database/technology/maps.html

阅读笔记:讲的Map非常详细!!!

*Java中的Map接口的解析:*https://blog.csdn.net/jiguquan3839/article/details/84546835

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值