Java_集合—Map

集合篇:

Java_Collection_集合

Java_集合—Collection和Iterator

Java_集合—List

Java_集合—Set

Java_集合—Map

Java_集合的工具类—Collections



集合Map,在我们日常编程中也是很常见的,它最大的特点就是键值对的形式进行对数据的存储。

Map,本身是一个接口,所有的Map集合都实现这个接口,先来看看Map集合中都定义了哪些方法:


方法看完就来看看都有哪些已知的子类:

HashTable:底层是哈希表结构,不可以存入null作为键或者值,该集合是同步的。

HashMap:底层是哈希表结构,允许使用null作为键或者值,该集合不同步的,已经将HashTable替代了

TreeMap:底层是二叉树结构,线程不同步,可以用于给Map集合中的键进行排序。


重点来看看HashMap。

怎么讲呢?不如直接来看看上面的方法怎么用吧,其实上面的都比较简单了,看方法名就知道了,就不再解释,重点来看看下面介个方法:

map.keySet();   map.values();  map.entrySet();

这几个方法都涉及到集合元素的获取。集合的获取,前面不是有么?get啊,没错,get是可以,但get的前提是要知道键,否则是取不了值的。如果我要遍历怎么办?遍历简单啊,Iterator啊,然后把api找了一遍,都找不到有获取Iterator的方法,傻了吧!别急,下面来看看怎么获取:

获取的方式无非就两种,一种是先获取出所有的键,然后根据键去获取值。另一种就是直接获取出所有的键和值;

先看看第一种:


代码的line26-32是对集合的遍历。首先line26:通过Map集合的keyset();方法获取集合中所有的键,这个键获取回来的是一个set的集合,然后在根据set集合的遍历方式去遍历它,逐个获取,最后line30,通过键去获取值,并打印出来。


再来看看另一种:


这种也很好理解,上一种是先获取所有的键,然后通过键去获取值,这个就是一次把所有的键和值都获取回来,然后通过getKey() 和 getValue() 方法去获取。

不管先获取键,还是一次获取所有的键值,获取回来的都是一个set的集合。

最后,还有一个方法:map.values();

这个方法又有什么用呢?先来看看怎么用?

其实和获取所有的键一样,只是有一点不同的是,我们获取回来的键是一个set的集合,而值获取回来的是一个collection的集合。其他都一样。

再来说说这个方法有什么用呢?其实用的真不多,但例如:集合里面存储的是一个班级里面所有学生的学号和年龄,那么,是不是可以直接把所有的value取出来就可以了,我不需要知道哪个学生的年龄,我要知道的是每个年龄在这个班级的比重是多少而已!

所以,还是有点用的;


Map集合就写到这里,好累,赶紧睡觉去。。。。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的数组和集合是用来存储和操作数据的常用数据结构。数组是一种固定大小的数据结构,用于存储同一类型的元素。数组声明时需要指定元素的类型,并且大小是固定的,不能动态改变。而集合是一种动态大小的数据结构,可以根据需要动态改变大小。集合以object形式来存储元素,因此可以存储不同类型的元素。 在Java中,集合分为List、Set和Map三种主要类型。List是一种有序的集合,可以存储重复的元素。常见的List实现类有ArrayList、LinkedList和Vector。Set是一种不允许重复元素的集合,常见的Set实现类有HashSet和TreeSet。Map是一种键值对的集合,每个元素都包含一个键和一个值,键是唯一的。常见的Map实现类有HashMap、HashTable和TreeMap。 数组和集合在功能上有一些区别。数组声明时需要指定元素的类型,而集合不需要。数组的大小是固定的,而集合可以动态改变大小。此外,数组是一种可读/可写的数据结构,而集合可以提供只读版本。 总结来说,数组和集合都是用来存储和操作数据的数据结构,但数组是固定大小的,集合是动态大小的。数组声明时需要指定元素的类型,而集合不需要。数组比集合更快,但集合提供了更多的功能。在Java中,集合分为List、Set和Map三种主要类型,每种类型都有不同的实现类。 #### 引用[.reference_title] - *1* *3* [Java之数组array和集合list、set、map](https://blog.csdn.net/diaolapei9880/article/details/102382030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java必要准确区别之数组Array和集合list、map、set](https://blog.csdn.net/jagel_95/article/details/83112811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值