集合关系图
1、文章前介
日常工作中常用的集合有ArrayList、HashMap和HashSet。前两者在开发中更是广为使用。本章主要介绍的是Map下HashMap
在日常工作中的遍历操作。将会以容易理解的方式介绍工作常用的deal。
2、数据初始化
@Test
void testMap(){
//初始化用户数据
User zhangSan = new User(1,"zhangSan",21);
User liSi = new User(2,"liSi",22);
User wangWu = new User(3,"wangWu",23);
User zhaoLiu = new User(4,"zhaoLiu",24);
//初始化hashMap数据
//(userID, userName)
Map<Integer, String> userMap= new HashMap<>();
userMap.put(zhangSan.getUserId(), zhangSan.getUserName());
userMap.put(liSi.getUserId(), liSi.getUserName());
userMap.put(wangWu.getUserId(), wangWu.getUserName());
userMap.put(zhaoLiu.getUserId(), zhaoLiu.getUserName());
System.out.println(JSON.toJSONString(userMap));
}
3、遍历hashMap的key集合
/**
* 遍历hashMap的key集合
*/
for (Integer userId : userMap.keySet()){
System.out.println("userId -> " + userId);
}
打印结果
userId -> 1
userId -> 2
userId -> 3
userId -> 4
4、遍历hashMap的value集合
1、方式一 直接遍历values
/**
* 遍历hashMap的value集合
* 方式一
* 直接遍历values
*/
for (String userName : userMap.values()){
System.out.println("userName -> " + userName);
}
2、方式二 通过key获取value
/**
* 遍历hashMap的value集合
* 方式二
* 通过key获取value
*/
for (Integer userId : userMap.keySet()){
System.out.println("userName -> " + userMap.get(userId));
}
3、如果map的value是对象列表(与1、2点同理)
5、同时获取hashMap的key和value
value为对象时同理
//Map.Entry<遍历map的key类型, 遍历map的value类型>
for (Map.Entry<Integer, String> entry : userMap.entrySet()){
//key
Integer key = entry.getKey();
//value
String value = entry.getValue();
System.out.println("userID -> " + key + " and userName -> " + value);
}
打印结果
userID -> 1 and userName -> zhangSan
userID -> 2 and userName -> liSi
userID -> 3 and userName -> wangWu
userID -> 4 and userName -> zhaoLiu