java学习笔记:集合之集合与集合的嵌套

这篇Java学习笔记详细介绍了集合的嵌套使用,包括ArrayList嵌套HashMap、对List进行去重以及HashMap嵌套ArrayList的实例。通过示例代码展示了如何创建、添加元素以及遍历这些嵌套集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java学习笔记:集合之集合与集合的嵌套

 

集合与集合的嵌套
----
1.ArrayList嵌套HashMap
题目1:需求:ArrayList集合嵌套HashMap集合,并遍历。
定义一个ArrayList集合,它包含三个元素,每一个元素都是HashMap类型的,每一个HashMap集合的键和值都是String类型的。
键:String 丈夫的姓名
值:String 妻子的姓名
数据:
第一个HashMap集合的元素:
  孙策  大乔
  周瑜  小乔
第二个HashMap集合的元素:
  郭靖  黄蓉
  杨过  小龙女
第三个HashMap集合的元素:
  令狐冲  任盈盈
  林平之  岳灵珊
代码:
//创建集合对象
ArrayList<HashMap<String, String>> array = new ArrayList<HashMap<String, String>>();
//创建元素1
HashMap<String, String> hm1 = new HashMap<String, String>();
hm1.put(" 孙策", "大乔");
hm1.put("周瑜", "小乔");
//把元素1添加到array中
array.add(hm1);
...//创建元素2、3,添加到array中
//遍历ArrayList集合
//遍历方法一:键找值
for(HashMap<String, String> hm : array){
  Set<String> set = hm.keySet();
  for(String key : set){
    String value = hm.get(key);
    System.out.println(key + "--" + value);
  }
  System.out.println("----");
}


题目2:对List进行去重
ArrayList<String> list = new ArrayList<String>();
list.add("小红");
...
HashSet<String> set = new HashSet<String>(list);//把ArrayList放到HashSet里,可以给元素去重
for(String s : set){
  System.out.println(s);
}
ArrayList<String> list2 = new ArrayList<String>(set);//再把HashSet转回ArrayList
for(String s : list2){
  System.out.println(s);
}


题目3:HashMap嵌套ArrayList
需求:HashMap集合嵌套ArrayList集合,并遍历
定义一个HashMap集合,它包含三个元素,每个元素的键是String类型,值是ArrayList类型。
键:String 人物来自哪部电视剧
值:ArrayList 人物的名称,每一个ArrayList集合的数据是String类型的
数据:
  第一个ArrayList集合的元素:三国演义
    诸葛亮
    赵云
  第二个ArrayList集合的元素:西游记
    唐僧
    孙悟空
  第三个ArrayList集合的元素:水浒传
    武松
    鲁智深
代码:
//创建集合对象
HashMap<String, ArrayList<String>> hm = new HashMap<String, ArrayList<String>>();
//创建元素1
ArrayList<String> arr1 = new ArrayList<String>();
arr1.add("诸葛亮");
arr1.add("赵云");
//把元素1添加到hm中
hm.put("三国演义", arr1);
...//创建元素2、3,添加到hm
//遍历集合
//遍历方法一
Set<String> set = hm.keySet();
for(String key : set){
  System.out.println(key);
  ArrayList<String> value = hm.get(key);
  for(String s : value){
    System.out.println("\t" + s);
  }
}

//遍历方法二:键值对对象找键和值
Set<Map.Entry<String, ArrayList<String>>> entrySet = map.entrySet();
for(Map.Entry<String, ArrayList<String>> entry : entrySet){
  System.out.println(entry.getKey());
  ArrayList<String> value = entry.getValue();
  for(String s : value){
    System.out.println("\t" + s);
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值