集合框架和泛型--Map、泛型、Collections

一、Map存取数据

Map接口中存储的数据都是键-值对,例如:一个身份证号对应一个人,其中身份证号码就是key,与此号码对应的人就是value。

1、Map接口常用方法

在这里插入图片描述

2、遍历Map

1、遍历键集key

Map接口中的key特点是无序、不可重复的。无序,意味着我们可以通过增强型的for遍历、以及迭代器的方式遍历,不能使用普通的for循环。不可重复:意味着我们可以通过Set把一个个key拿出来。
所以遍历思路是:先把键-值对中的键key通过keySet()都拿出来,再进行遍历。
在这里插入图片描述
在这里插入图片描述

2、遍历值集value

Map接口中的value特点是无序、可重复的。无序:那可以用增强型for和迭代器遍历。主要是可重复的,我们应该用什么方法把一个个value拿出来呢? Collection类中有直接调取value的方法value(),具体操作如下:
在这里插入图片描述

3、遍历HashMap

通过entrySet()获取集合中的元素进行遍历。
在这里插入图片描述

二、泛型的使用

1、将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性本质是参数化类型;
2、泛型集合可以约束集合内的元素类型;
3、典型泛型集合ArrayList、HashMap<K,V> 、<K,V>表示该泛型集合中的元素类型 泛型集合中的数据不再转换为Object
4、除了指定了集合中的元素类型外,泛型集合和之前学习的集合的用法完全一样。

三、Collections的使用

Collections类里有很多操作集合的方法,就像Arrays中有很多方法操作数组一样。

Collections提供的常用静态方法
sort():排序
binarySearch():查找
max()\min():查找最大\最小值
reverse():反转元素顺序

拓展:

其他常用实现类
List接口:Vector:线程安全的list集合
ConcurrentLinkedList:线程安全的链式表
Set接口:LinkedHashSet:有顺序的HashSet
Map接口:ConcurrentHashMap:线程安全的map,特点:对所有数据分段上锁
HashTable的特点:所有数据都上锁,如果有一个线程访问了某段数据,其他人都不能访问所有数据

猜你喜欢

转载自blog.csdn.net/weixin_48185778/article/details/107672337