279/280Map集合遍历键找值方式和HashMap储存自定义类型键值
Map集合遍历键值对方式
Map集合遍历的第二种方式:使用Entry对象遍历
Map集合中的方法:
Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的 Set 视图。
实现步骤:
1.使用Map集合中的方法entrySet( ),把Map集合中多个Entry对象取出来,存储到一个set集合中
2.遍历set集合,获取每一个Entry对象
3.使用Entry对象中的方法getKey ()和getvalue()获取键与值
public static void main(String[] args) {
//创建Map集合对象
Map<String ,Integer> map = new HashMap<>();
map.put("梁志超",168);
map.put("卢本伟",165);
map.put("六舅",178);
//1.使用Map集合中的方法entrySet(),把Nap集合中多个Entry对象取出来,存储到一个set集合中
Set<Map.Entry<String,Integer>> set = map.entrySet();
//72.遍历set集合,获取每一个Entry对象
//使用迭代器遍历set集合
Iterator<Map.Entry<String,Integer>> it = set.iterator( );
while(it.hasNext()) {
Map.Entry<String, Integer> entry = it.next();
//3.使用Entry对象中的方法getKey()和getvalue( )获取键与值
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + "=" + value);
}
}
//Map集合遍历键值对方式
public class MapDemo2 {
public static void main(String[] args) {
//创建Map集合对象
HashMap<Integer, String> map = new HashMap<Integer, String>();
//添加元素
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");
map.put(4, "d");
//获取键值对集
Set<Entry<Integer, String>> entrys = map.entrySet();
//增强for方式 遍历键值对集 得到每一个键值对
for(Entry<Integer, String> entry : entrys) {
//通过键值对获取键
Integer key = entry.getKey();
//通过键值对获取值
String value = entry.getValue();
System.out.println(key + ":" + value);
}
Iterator it = entrys.iterator();
//迭代器方式 遍历键值对对象集 得到每一个键值对对象
while(it.hasNext()) {
//通过键值对对象获取键值对
Entry<Integer, String> entry = (Entry<Integer, String>)it.next();
//通过键值对获取键
Integer key = entry.getKey();
//通过键值对获取值
String value = entry.getValue();
System.out.println(key + "=" + value);
}
}
}
HashMap存储自定义类型键值
练习∶每位学生(姓名,年龄)都有自己的家庭住址。那么,既然有对应关系,则将学生对象和家庭住址存储到map集合中。学生作为键,家庭住址作为值。
HashMap存储自定义类型键值key : Herson类型
person类就必须重hashcode方法和equals方法,以保证key唯一value:String类型
可以重复
public static void main(String[] args) {
// showe1();
show2();
}
/*
HashMap存储自定义类型键值key : String类型
String类重写hashcode方法和equals方法,可以保证key唯一value :Person类型
vatue可以重复(同名同年龄的人视为同一个)
*/
private static void showe1() {
//创建HashMap集合
HashMap<String,Person> map = new HashMap<>();
//往集合中添加元素
map.put("河北", new Person("张三", 18));
map.put("北京" , new Person("李四", 19));
map.put("上海" , new Person("王五", 20));
map.put("南京" ,new Person("赵六", 18));
//使用keyset加增强for遍历Map集合
Set<String> set = map. keySet();
for (String key : set){
Person value = map.get(key ) ;
System.out.println( key+"-- >"+value);
}
}
private static void show2(){
//创建HashMap集合
HashMap<Person, String> map = new HashMap<>();
//往集合中添加元素
map.put(new Person("赛亚人",20),"超级塞亚人");
map.put(new Person("六舅",20),"豆腐乳");
map.put(new Person("乐迪",20),"乐迪加速");
map.put(new Person("卢本伟",20),"伞兵一号卢本伟");
//使用entrySet和增强for遍历Map集合
Set<Map.Entry<Person, String>> entries = map.entrySet();
for (Map.Entry<Person,String> entry: entries){
Person key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"-->"+value);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix