java 集合嵌套_Java基础增强:集合的嵌套案例

一入编程深似海,从此妹子是路人。

7f0b000acf17fcefc80522f0085289bc.png

List集合的遍历方式:

List list = newArrayList();//第一种遍历方式

System.out.println(list);//第二种遍历方式,最常用的一种foreach

LinkedList list = new LinkedList();for(Integer integer : list) {

System.out.println(integer);

}

Map集合的遍历方式:

方式1:根据键找值 获取所有键的集合 遍历键的集合,获取到每一个键 根据键找值

private static void print(HashMaph) {

Set keySet =h.keySet();for( Integer key:keySet) {

System.out.println(key+"="+h.get(key));

}

}

方式2:根据键值对对象找键和值 获取所有键值对对象的集合 遍历键值对对象的集合,获取到每一个键值对对象 根据键值对对象找键和值

//h为一个map对象

for(Entryentry:h.entrySet()) {

System.out.println(entry.getKey()+“ ”+entry.getValue());

案例一:

三国演义

吕布

周瑜

笑傲江湖

令狐冲

林平之

神雕侠侣

郭靖

杨过

通过利用Mao和ArrayList的嵌套实现上述格式,具体实现代码如下:

packagetest.day14;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.LinkedHashMap;importjava.util.Map;importjava.util.Map.Entry;/*** map和List的嵌套

*@authorzhangdali

**/

public classHashMapTest2 {public static voidmain(String[] args) {//map和list嵌套声明

LinkedHashMap> h = new LinkedHashMap<>();//创建map集合的第一个键值对

ArrayList list = new ArrayList();

list.add("吕布");

list.add("周瑜");

h.put("三国演义", list);//创建map集合的第二个键值对

ArrayList list2 = new ArrayList();

list2.add("令狐冲");

list2.add("林平之");

h.put("笑傲江湖", list2);//创建map集合的第三个键值对

ArrayList list3 = new ArrayList();

list3.add("郭靖");

list3.add("杨过");

h.put("神雕侠侣", list3);for(Entry>entry:h.entrySet()) {

System.out.println(entry.getKey());

ArrayList value2 =entry.getValue();for( String value:value2) {

System.out.println("\t"+value);

}

}

}

}

案例二:

周瑜-----小乔

孙权-----大乔

杨过-----小龙女

吕布-----貂蝉

通过利用List和map的嵌套实现,具体代码如下:

packagetest.day14;importjava.util.ArrayList;importjava.util.LinkedHashMap;importjava.util.Map.Entry;public classListMapTest {public static voidmain(String[] args) {//lis和map嵌套

ArrayList> list = new ArrayList>();

LinkedHashMap map = new LinkedHashMap();

map.put("周瑜", "小乔");

map.put("孙权", "大乔");

map.put("杨过","小龙女");

map.put("吕布","貂蝉");

list.add(map);for(LinkedHashMapmap2 :list) {for( Entryentry: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的的嵌套实现,具体的实现代码如下:

packagetest.day14;importjava.util.HashMap;importjava.util.Map;importjava.util.Scanner;public classMapQianTaoTest {public static voidmain(String[] args) {

Scanner sc= newScanner(System.in);

HashMap map = new HashMap();

map.put(120, "三十六计");

HashMap> map2 = new HashMap<>();

map2.put(119, map);

HashMap>> map3= new HashMap

HashMap>>();

map3.put(110, map2);while( true) {

System.out.println("请输入第一层密码");int pwd =sc.nextInt();

HashMap> map4 =map3.get(pwd);if( null!=map4) {while(true) {

System.out.println("请输入第二层密码");int pwd2 =sc.nextInt();

HashMap 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("第一层密码输入错误,重新输入");

}

}

}

结束语:经得住诱惑,耐得住寂寞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值