Java基础—map集合

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<String,Point> map = new HashMap<String,Point>() ;
    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<String,Point> map = new HashMap<String,Point>() ;
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<String> 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映射。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容