java集合Map

Map(接口)

Map集合继承图

Map以Key和Value键值对的形式存放数据。

Map中的Key是无序,不可重复的。

Map的常用方法

  • put(x,value)(存放元素)
  • get(x)(获取key为x的元素)
  • remove(x)(移除key为x元素)
  • size()(返回元素个数)
  • clear()(清空map)
  • isEmpty()(判断map是否为空)
  • values()(获取map的value)
  • keySet()(获取map的key)
  • entrySet()(获取map的key和value)
 
        Map<Integer,String> map=new HashMap<>();
        map.put(1,"张飞");//添加元素key和value
        map.put(2,"赵云");
        map.put(3,"关羽");
        map.put(1,"李四");
        map.put(4,"马超");
        map.put(5,"黄忠");
        map.put(6,"典韦");
        map.put(null,null);
        System.out.println(map.get(1));//李四  如果key相同,会覆盖原来的value
        map.remove(2);//移除key为2的元素
        System.out.println(map.size());//5 
        Collection values = map.values();//获取所有的value
		//遍历value
        for(Object i:values){
            System.out.println(i);
        }
        //遍历map,方法一
        Set set = map.keySet();//获取所有的key,存放在Set中,遍历Set
        for (Object i:set) {
            System.out.println(i+"="+map.get(i));//通过get方法获取value
        }
        System.out.println("===========");
        //遍历map,方法二
        Set<Map.Entry<Integer, String>> entries = map.entrySet();
        //获取map中所有的key和value以 “key=value”的形式存放在Set中
        Iterator<Map.Entry<Integer, String>> it = entries.iterator();
        while (it.hasNext()) {
            Map.Entry<Integer, String> next = it.next();
            System.out.println(next.getKey()+"="+next.getValue());
        }
        map.clear();//清空map
        System.out.println(map.isEmpty());//true 判断是否为空
//null=null
//0=
//1=李四
//3=关羽
//4=马超
//5=黄忠
//6=典韦
//true

HashMap

底层是哈希表(数组加链表),线程不安全。

优点:查询快,增删快。

key和value都可以存放null。

初始大小为16,默认加载因子0.75。

扩容之后是原容量的2倍。

map.put(null,null);//可以

HashTable

底层是哈希表,线程安全。

key和value都不能存放null,否则在运行时会出现NullPointerException。

初始大小为11,扩容大小=原容量*2+1。

map.put(8,null);//不行
map.put(null,0);//不行
map.put(null,null);//不行

Properties

继承HashTable,线程安全。

key和value只能存放String类型的。否则在运行时会出现NullPointerException。

map.put(5,"黄忠");//不可以存放,会出错。必须是String类型的。

TreeMap

底层是二叉树。

TreeMap中key可以按照元素大小排序。

key不能存放null,value可以存放null。

map.put(8,null);//可以存放
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值