JAVA学习笔记11 Map

在这里插入图片描述

public class MapDemo01 {
    public static void main(String[] args) {
        Map<String ,String> map=new HashMap<String,String>();
        //V put (K key, V value) 将指定的值与该映射中的指定键相关联
        map.put("itheima001","林青霞");
        map.put("itheima002","张曼玉");
        map.put("itheima002","柳岩");

        System.out.println(map);
    }
}
执行结果:
{itheima001=林青霞, itheima002=柳岩}

由此可见,如果key值相同的话,后面的是会覆盖掉前面的键。原因是hashMap作为底层的数据结构。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class MapDemo03 {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();

        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");

        //获取所有键的集合。用keySet()方法实现
        Set<String> keySet=map.keySet();
        for (String k:keySet){
            //根据键去找值。用get(0bject key)方法实现
            String value=map.get(k);
            System.out.println(k+","+value);
        }
    }
}
执行结果:
杨过,小龙女
郭靖,黄蓉
张无忌,赵敏

在这里插入图片描述

public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();

        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");
 

        //获取所有键值对对象的集合
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        //遍历键值对对象的集合,得到每一一个键值对对象
        for (Map.Entry<String, String> me : entrySet) {
            //根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key + "," + value);
        }

    }
执行结果;
杨过,小龙女
郭靖,黄蓉
张无忌,赵敏

在这里插入图片描述
在这里插入图片描述

package Map;

import java.util.*;

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

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

        //将hashmap作为元素添加到arraylist中
        array.add(hm1);

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

        //将hashmap作为元素添加到arraylist中
        array.add(hm2);

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

        //将hashmap作为元素添加到arraylist中
        array.add(hm3);

        System.out.println(array);

        //遍历arraylist集合
        for(HashMap<String,String> hm:array){
//             ①通过获取键key来获取值value,然后一起打印出来
//            Set<String> keyset=hm.keySet();
//            for (String key:keyset){
//                String value=hm.get(key);
//                System.out.println(key+","+value);
//            }
//            System.out.println("---------");
            //②通过获取所有键值对对象的集合来获取键key和value
            Set<Map.Entry<String, String>> entrySet = hm.entrySet();
            for (Map.Entry<String, String> me:entrySet){
                String key=me.getKey();
                String value=me.getValue();
                System.out.println(key+","+value);
            }

        }


    }
}

执行结果:

[{孙策=大乔, 周瑜=小乔}, {杨过=小龙女, 郭靖=黄蓉}, {令狐冲=任盈盈, 林平之=岳灵珊}]
孙策,大乔
周瑜,小乔
杨过,小龙女
郭靖,黄蓉
令狐冲,任盈盈
林平之,岳灵珊

在这里插入图片描述
在这里插入图片描述

package Map;

import java.util.*;

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

        //创建ArrayList集合
        ArrayList<String> sgyy=new ArrayList<String>();
        sgyy.add("诸葛亮");
        sgyy.add("赵云");

        //添加ArrayList到hashMap中
        hm.put("三国演义",sgyy);

        //创建ArrayList集合
        ArrayList<String> xyj=new ArrayList<String>();
        xyj.add("唐僧");
        xyj.add("孙悟空");

        //添加ArrayList到hashMap中
        hm.put("西游记",xyj);

        //创建ArrayList集合
        ArrayList<String> shz=new ArrayList<String>();
        shz.add("武松");
        shz.add("鲁智深");

        //添加ArrayList到hashMap中
        hm.put("水浒传",shz);

        System.out.println(hm);


        Set<String> keyset=hm.keySet();
        Collection<ArrayList<String>> values=hm.values();
        for (String k:keyset){
//            for (ArrayList<String> a:values){
//                System.out.println(k+","+ a.get(0)+","+a.get(1));
//            }
            ArrayList<String> value=hm.get(k);
            System.out.println(k);
            for (String a:value){
                System.out.println("\t"+a);
            }
        }

    }
}

执行结果:
{水浒传=[武松, 鲁智深], 三国演义=[诸葛亮, 赵云], 西游记=[唐僧, 孙悟空]}
水浒传
武松
鲁智深
三国演义
诸葛亮
赵云
西游记
唐僧
孙悟空在这里插入图片描述
在这里插入图片描述

package Map;

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class HashMapDemo03 {
    public static void main(String[] args) {
        //从键盘录入一个数
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个字符");
        String line=sc.nextLine();

        //创建hashmap集合
        TreeMap<Character,Integer> hm=new TreeMap<Character,Integer>();
			//使用TreeMap进行排序,按照字母顺序abcdef......
        //遍历字符串,得到每个字符
        for (int i =0;i<line.length();i++){
            char key = line.charAt(i);

            //拿每个得到的字符去hashmap找对应的值,看其返回值
            Integer value=hm.get(key);

            if (value==null){
                hm.put(key,1);
            }else{
                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 s=sb.toString();
        System.out.println(s);

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值