总结之 Map接口 的使用场景(day04)

  Map:
    Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值
    Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

    特点:
      键不重复,值可以重复
      每个键只能对应一个值

    子类:
      HashMap:
        存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,
        需要重写键的hashCode()方法、equals()方法。
      LinkedHashMap
        HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。
        通过链表结构可以保证元素的存取顺序一致;
        通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

    常用方法:
      - public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
      - public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
      - public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
      - public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。
      - public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

    notes:
      使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,
      并把指定的键值添加到集合中;

      若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),
      并把指定键所对应的值,替换成指定的新值。

    遍历方法:
      the fist way
        键找值方式:即通过元素中的键,获取键所对应的值
        分析步骤:用keyset()
        ①获取Map集合中所有的键,由于键是唯一的,所以返回一个Set集合存储所有键,
        ②遍历所有的键
        ③根据键找对应的值

      the scecond way
        Entry表示了一对键和值,那么也同样提供了获取对应键和对应值得方法
        - public K getKey():获取Entry对象中的键。
        - public V getValue():获取Entry对象中的值。
        在Map集合中也提供了获取所有Entry对象的方法:

        - public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

        ①获取Map集合中,所有的键值对 Entry对象 以Set的形式返回,entrySet()
        ②遍历包含键值对 对象的 集合 拿到 每一对键值对 对象
        ③通过键值对 对象 获取Entry对象中的键与值 方法提示 getKey() getValue()

    1.HashMap
      ①HashMap存储自定义类型键值
        - 当给HashMap中存放自定义对象时,如果自定义对象作为key存在,这时要保证对象唯一,
        必须复写对象的hashCode和equals方法(如果忘记,请回顾HashSet存放自定义对象)。
        - 如果要保证map中存放的key和取出的顺序一致,可以使用java.util.LinkedHashMap集合来存放。
      2LinkedHashMap
      ① 使无序的 HashMap变的有序

Java之Map的使用场景的更多相关文章

  1. java使用Map做缓存你真的用对了吗?弱引用WeakHashMap了解一下

    目录 关于缓存我们应该考虑什么?-intsmaze WeakHashMap弱引用-intsmaze 线程安全问题-intsmaze Collections-intsmaze ThreadLocal-i ...

  2. java之Map源代码浅析

    Map是键值对.也是经常使用的数据结构. Map接口定义了map的基本行为.包含最核心的get和put操作,此接口的定义的方法见下图: JDK中有不同的的map实现,分别适用于不同的应用场景.如线程安 ...

  3. 可以设置过期时间的Java缓存Map

    前言 最近项目需求需要一个类似于redis可以设置过期时间的K,V存储方式.项目前期暂时不引进redis,暂时用java内存代替. 解决方案 1. ExpiringMap 功能简介 : 1.可设置Ma ...

  4. 错误:java.util.Map is an interface, and JAXB can't handle interfaces.

    问题: 在整合spring+cxf时报错java.util.Map is an interface, and JAXB can't handle interfaces. 解决方法: 将服务端的serv ...

  5. Java中Map常用方法总结以及遍历方式的汇总

    一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...

  6. Java 基础 Map 练习题

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  7. java 遍历map 方法 集合 五种的方法

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

  8. JAVA/Android Map与String的转换方法

    在Android开发中 Map与String的转换在,在一些需求中经常用到,使用net.sf.json.JSONObject.fromObject可以方便的将string转为Map.但需要导入jar包 ...

  9. java中map插入相同的key

    测试用例: package test; import org.junit.Test; import po.Person; import java.util.HashMap; import java.u ...

随机推荐

  1. HTML5 <iframe> 标签

    iframe 元素会创建包含另外一个文档的内联框架(即行内框架). 即页面中嵌入另外一个独立的页面使用iframe,熟悉src是嵌套的页面的路径地址,scrolling属性可以设置iframe的滚动条 ...

  2. CentOS中配置CDH版本的ZooKeeper

    三台CentOS:Host0,Host1,Host2 在三台中分别安装zookeeper-server yum install zookeeper-server -y 修改zookeeper的配置文件 ...

  3. Arduino入门笔记(9):蓝牙模块及第一辆蓝牙遥控小车

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.Arduino UNO板 https://item.t ...

  4. 转自:strcmp函数实现及详解

    strcmp函数是C/C++中基本的函数,它对两个字符串进行比较,然后返回比较结果,函数形式如下:int strcmp(constchar*str1,constchar*str2);其中str1和st ...

  5. 【转】深入理解C++的动态绑定和静态绑定 & 不要重定义虚函数中的默认参数

    为了支持c++的多态性,才用了动态绑定和静态绑定.理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误.需要理解四个名词:1.对象的静态类型:对象在声明时采用的类型.是在编译期确定的.2 ...

  6. ASP.NET Core的Kestrel服务器(转载)

    Kestrel是一个基于libuv的跨平台ASP.NET Core web服务器,libuv是一个跨平台的异步I/O库.ASP.NET Core模板项目使用Kestrel作为默认的web服务器.Kes ...

  7. Liunx-cp命令

    1. 复制当前目录的test文件夹 到/201904 目录 出现如下截图问题是因为test目录下还有文件,所以得加-r,使用递归拷贝.我现在用这个命令拷贝文件都加-r了,不管有文件还是没文件 2.复制 ...

  8. go语言之行--结构体(struct)详解、链表

    一.struct简介 go语言中没有像类的概念,但是可以通过结构体struct实现oop(面向对象编程).struct的成员(也叫属性或字段)可以是任何类型,如普通类型.复合类型.函数.map.int ...

  9. pygame 入门实例

    本文基于win7(64) + py3.5(64)环境. 本文是这里的一篇学习笔记.加入了自己的理解. 本文最终目的是实现一个飞机躲避导弹的游戏. 1.核心概念 pygame 的核心概念有: Surfa ...

  10. 基于RapidJSON的操作库

    需要安装配置RapidJSON库 /******************************************************************* * summery: 提供便 ...