码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-24 00:40:54      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:获取   ima   根据   test   idt   java基础   pack   oid   对象   

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

技术分享图片

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("\t"+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基础增强:集合的嵌套案例

标签:获取   ima   根据   test   idt   java基础   pack   oid   对象   

原文地址:https://www.cnblogs.com/zdl9857/p/9527197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!