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_斗地主案例的代码实现

java 增强for循坏遍历set 集合嵌套

java基础增强:网络编程TcpUdp案例

java基础(18):集合Iterator迭代器增强for循环泛型

java基础第十二篇之集合增强for循环迭代器和泛型