博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Map集合——Map接口
阅读量:6000 次
发布时间:2019-06-20

本文共 1913 字,大约阅读时间需要 6 分钟。

hot3.png

Map接口的实现类为HashMap,Map接口定义的集合又称为查找表,用于存储“键值对”。Key可以看成Value的索引,而往往Key是Value的一部分内容。

    1)Key、键不可以重复,但是保存的value、值可以重复。Map接口有很多实现类,有内部为hash表实现的HashMap和内部为二叉树链表的TreeMap。同样这样的数据接口在存储数据时,不建议存储两种以上的数据类型。所以通常我们使用Map集合时,也会使用泛型来约束存储数据的数据类型。

    2)创建Map进行存储时,这里要约束两个类型,一个是Key键类型,一个是Value值的类型。

    3)HashMap集合中常用的方法:

        ①V put(Key,Value):    将元素以Key-Value形式存入到集合中,当存储内容相同时,则Key相同,替换Key对应的Value值。

        ②V get(Object Key):返回Key键对应的Value值,如果不存在,则返回null;

        ③boolean containsKey(Object Key):判断集合中是否保存指定的Key。

        ④boolean containsValue(Object value):判断集合中是否存在指定的value。

        ⑤若指定的Key在HashMap集合中不存在,则返回null,原则上,我们在集合中获取元素时,首先要判断集合中是否存在该元素。之后再使用,避免空指针异常出现。Map在获取元素时有针对性,集合在获取元素需要遍历集合内容,而Map不需要,只需要给他指定的Key就能获取对应的内容。

Map
 map = new HashMap
() ;    map.add("san",new Point(1,2)) ;    map.add("1,2",new Point(3,4)) ;    Point p = map.get("san") ;:    System.out.println("键="+p.getX()+"值="+p.getY()) ;    //添加同Key不同Value的对象,将Value替换    map.add("san",new Point(5,6)) ;    p = map.get("san") ;    System.out.println("键="+p.getX()+"值="+p.getY()) ;    //查找集合中不存在Key    p = map.get("si") ;    System.out.println("Key="+p.getX()+"Value"=p.getY()) ;

  4)遍历HashMap方式一:获取所有的key(迭代Key),并根据key获取value。从而达到遍历的效果。keySet()方法:是HashMap获取所有Key的方法。该方法可以获取Map集合中的所有key,并以Set集合的形式返回。

Map
 map = new HashMap
() ;map.add("yi",new Point("1,2")) ;map.add("er",new Point("3,4")) ;map.add("san",new Point("5,6")) ;//因为key在HashMap泛型中规定了类型为String,所以返回的Set类型也为String,为了更好的使用,定义set类型变量也加上泛型Set
 keySet = map.keySet() ;for(String str:map.keySet()){    Point p = map.get(key) ;    //通过Key找到value    System.out.println("key:"+p.getX()+"value:"+p.getY()) ;}

    5)List,Set,Map三个接口存储元素时各自的特点:

        ①List。继承Collection接口,使用此接口能精确的定位到要插入的位置。用户能够通过索引来访问List集合中的元素。

    有序,可以重复。

        ②Set。继承Collection接口,无序,不重复,元素唯一值。集合中任意两个元素都会a.equals(b) = false,Set集合中最少有一个null元素。

        ③Map。没有继承Collection接口,Map提供Key——value映射。

转载于:https://my.oschina.net/bugkiller/blog/657865

你可能感兴趣的文章
mysql慢查询日志分析工具mysqldumpslow
查看>>
4.09.1
查看>>
电话本管理程序(实现增删改查功能)
查看>>
LOCK_TIMEOUT
查看>>
Python脱产8期 Day29 2019/5/24
查看>>
学c#语言的感想
查看>>
Windows 驱动模型的发展历史
查看>>
Android视图的截图
查看>>
App列表之分组ListView
查看>>
Android&iOS崩溃堆栈上报
查看>>
关于iOS开发的各种证书
查看>>
【Openjudge】 算24
查看>>
lvreduce -L 1000M /dev/vg0/lv0 表示最后缩减至多大,不是减少了多大
查看>>
ES 自动恢复分片的时候不恢复了是磁盘超过了85%,然后不恢复了 ES可以配置多个数据目录...
查看>>
linux查杀病毒的几个思路
查看>>
宽带速度
查看>>
构建之法阅读笔记5
查看>>
Android判断网络连接状态
查看>>
leetcode_1033. Moving Stones Until Consecutive
查看>>
logback logback.xml常用配置详解(二)<appender>
查看>>