17.12 ArrayList和HashMap之间的嵌套

ArrayList嵌套HashMap:

public class ArrayListIncludeHashMapDemo {
    public static void main(String[] args) {
        //创建ArrayList集合
        ArrayList<HashMap<String,String>> array = new ArrayList<>();

        //创建HashMap集合,并添加键值对元素
        HashMap<String,String> hm1 = new HashMap<>();
        hm1.put("孙策","大乔");
        hm1.put("周瑜","小乔");
        //添加到ArrayList集合中
        array.add(hm1);

        //创建HashMap集合,并添加键值对元素
        HashMap<String,String> hm2 = new HashMap<>();
        hm1.put("郭靖","黄蓉");
        hm1.put("杨过","小龙女");
        //添加到ArrayList集合中
        array.add(hm2);

        //创建HashMap集合,并添加键值对元素
        HashMap<String,String> hm3 = new HashMap<>();
        hm1.put("令狐冲","任盈盈");
        hm1.put("林平之","岳灵珊");
        //添加到ArrayList集合中
        array.add(hm3);

        //遍历ArrayList集合
        for(HashMap<String,String> hm : array){
            Set<String> key = hm.keySet();
            for(String k : key){
                String s = hm.get(k);
                System.out.println(k + "," + s);
            }
        }
    }
}

运行结果:

HashMap嵌套ArrayList:

public class HashMapIncludeArrayListDemo {
    public static void main(String[] args) {
        //创建HashMap集合
        HashMap<String, ArrayList<String>> hm = new HashMap<>();

        //创建ArrayList集合,并添加元素
        ArrayList<String> array1 = new ArrayList<>();
        array1.add("诸葛亮");
        array1.add("赵云");
        //把ArrayList作为元素添加到Hamap集合
        hm.put("三国",array1);

        //创建ArrayList集合,并添加元素
        ArrayList<String> array2 = new ArrayList<>();
        array2.add("唐增");
        array2.add("孙悟空");
        //把ArrayList作为元素添加到Hamap集合
        hm.put("西游记",array2);

        //创建ArrayList集合,并添加元素
        ArrayList<String> array3 = new ArrayList<>();
        array3.add("武松");
        array3.add("宋江");
        //把ArrayList作为元素添加到Hamap集合
        hm.put("水浒传",array3);

        //遍历HashMap集合
        Set<String> keySet = hm.keySet();
        for(String key : keySet){
            System.out.println(key);
            ArrayList<String> value = hm.get(key);
            for(String s : value){
                System.out.println("\t" + s);
            }
        }
    }
}

运行结果:

 

键盘录入一个字符串,要求统计字符串中每个字符串出现的次数
public class HashMapTest {
    public static void main(String[] args) {
        //键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String line = sc.nextLine();

        //创建HashMap集合,键是Character,值是Integer
        TreeMap<Character,Integer> hm = new TreeMap<>();

        //遍历字符串,得到每一个字符
        for (int i = 0; i < line.length(); i++) {
            char key = line.charAt(i);
            //拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值
            Integer value = hm.get(key);

            if(value == null){
                //如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1 作为值存储
                hm.put(key,1);
            }else{
                //如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新 存储该字符和对应的值
                value++;
                hm.put(key,value);
            }
        }

        //遍历HashMap集合,得到键和值,按照要求进行拼接
        StringBuilder sb = new StringBuilder();

        Set<Character> keySet = hm.keySet();
        for (Character key : keySet) {
            Integer value = hm.get(key);
            sb.append(key).append("(").append(value).append(")");
        }

        String result = sb.toString();
        System.out.println(result);
    }
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值