一入编程深似海,从此妹子是路人。
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("第一层密码输入错误,重新输入");
}
}
}
结束语:经得住诱惑,耐得住寂寞。