Java基础增强:集合的嵌套案例
Posted zdl9857
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础增强:集合的嵌套案例相关的知识,希望对你有一定的参考价值。
一入编程深似海,从此妹子是路人。
List集合的遍历方式:
List list = new ArrayList(); //第一种遍历方式 System.out.println(list); //第二种遍历方式,最常用的一种foreach LinkedList<Integer> list = new LinkedList<Integer>(); for (Integer integer : list) { System.out.println(integer); }
Map集合的遍历方式:
方式1:根据键找值 获取所有键的集合 遍历键的集合,获取到每一个键 根据键找值
private static void print(HashMap<Integer, String> h) { Set<Integer> keySet = h.keySet(); for( Integer key:keySet) { System.out.println(key+"="+h.get(key)); } }
方式2:根据键值对对象找键和值 获取所有键值对对象的集合 遍历键值对对象的集合,获取到每一个键值对对象 根据键值对对象找键和值
//h为一个map对象 for(Entry<String, String> entry:h.entrySet()) { System.out.println(entry.getKey()+“ ”+entry.getValue());
案例一:
三国演义
吕布
周瑜
笑傲江湖
令狐冲
林平之
神雕侠侣
郭靖
杨过
通过利用Mao和ArrayList的嵌套实现上述格式,具体实现代码如下:
package test.day14; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; /** * map和List的嵌套 * @author zhangdali * */ public class HashMapTest2 { public static void main(String[] args) { //map和list嵌套声明 LinkedHashMap<String, ArrayList<String>> h = new LinkedHashMap<>(); //创建map集合的第一个键值对 ArrayList<String> list = new ArrayList<String>(); list.add("吕布"); list.add("周瑜"); h.put("三国演义", list); //创建map集合的第二个键值对 ArrayList<String> list2 = new ArrayList<String>(); list2.add("令狐冲"); list2.add("林平之"); h.put("笑傲江湖", list2); //创建map集合的第三个键值对 ArrayList<String> list3 = new ArrayList<String>(); list3.add("郭靖"); list3.add("杨过"); h.put("神雕侠侣", list3); for(Entry<String, ArrayList<String>> entry:h.entrySet()) { System.out.println(entry.getKey()); ArrayList<String> value2 = entry.getValue(); for( String value:value2) { System.out.println(" "+value); } } } }
案例二:
周瑜-----小乔
孙权-----大乔
杨过-----小龙女
吕布-----貂蝉
通过利用List和map的嵌套实现,具体代码如下:
package test.day14; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.Map.Entry; public class ListMapTest { public static void main(String[] args) { //lis和map嵌套 ArrayList<LinkedHashMap<String, String>> list = new ArrayList<LinkedHashMap<String, String>>(); LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(); map.put("周瑜", "小乔"); map.put("孙权", "大乔"); map.put("杨过","小龙女"); map.put("吕布","貂蝉"); list.add(map); for(LinkedHashMap<String, String> map2 :list) { for( Entry<String, String> entry:map.entrySet()) { System.out.println(entry.getKey()+"-----"+entry.getValue()); int i=0; if(i%2==0 && i!=0) { System.out.println(); i=0; } i++; } } } }
案例三:
.需求:有一句话设置了三层防护,每一层都必须通过密码来获取,请想怎么设计这个程序’
通过利用map和map的的嵌套实现,具体的实现代码如下:
package test.day14; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class MapQianTaoTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); HashMap<Integer, String> map = new HashMap<Integer, String>(); map.put(120, "三十六计"); HashMap<Integer, HashMap<Integer, String>> map2 = new HashMap<>(); map2.put(119, map); HashMap<Integer, HashMap<Integer, HashMap<Integer, String>>> map3= new HashMap<Integer, HashMap<Integer, HashMap<Integer, String>>>(); map3.put(110, map2); while( true) { System.out.println("请输入第一层密码"); int pwd = sc.nextInt(); HashMap<Integer, HashMap<Integer, String>> map4 = map3.get(pwd); if( null!= map4) { while(true) { System.out.println("请输入第二层密码"); int pwd2 = sc.nextInt(); HashMap<Integer, String> map5 = map4.get(pwd2); if( map5!=null) { while(true) { System.out.println("请输入第三层密码"); int pwd3 = sc.nextInt(); String result = map5.get(pwd3); if(result!=null) { System.out.println(result); break; } System.out.println("最后一层密码输入错误,重新输入"); } break; } System.out.println("第二层密码输入错误,重新输入"); } break; } System.out.println("第一层密码输入错误,重新输入"); } } }
结束语:经得住诱惑,耐得住寂寞。
以上是关于Java基础增强:集合的嵌套案例的主要内容,如果未能解决你的问题,请参考以下文章
java-ArrayList中去重复字符串或重复对象LinkedList集合泛型增强for静态导入可变参数asList()方法集合嵌套
阶段1 语言基础+高级_1-3-Java语言高级_04-集合_03 斗地主案例(单列)_2_斗地主案例的代码实现