Map类

Map

键(key)值(value)对形式

interface Map<K, V>

​ class HashMap<K, V>哈希表结构

​ class Tree Map<K, V>底层是树形结构,存储要求K有对应的排序方式

Map双边队列中键(Key)是唯一的,但是值(value)是可以重复的

Map<K, V>双边队列方法

增:

  • put(K k, V v);

    存入一个键值对类型, K和V都要符合泛型约束

  • putAll(Map<? extend K, ? extends V> map);

    存入另一个Map双边队列,并且要求添加的Map双边队列中的K和V都要和当前Map中存储的K和V一致

删:

  • remove(Object K);

    删除对应K的键值对

改:

  • put(K k, V v);

    对应当前K存在,修改对应内容

查:

  • int size();

    当前Map双边队列中,有效键值对个数

  • boolean isEmpty();

    是否为空

  • boolean containsKey(Object key);

    判断指定key是否存在

  • boolean containsValue(Object Value);

    判断指定Value是否存在

  • Set keySet();

    返回整个Map双边队列中所有Key对应的Set集合

    [注意]一个方法使用set结尾,表示该方法返回的是一个集合类型,大多数情况下都是set类型

  • Collection values();

    返回整个Map双边队列中所有Value对应的Collection集合

    [注意]方法名如果是一个复数,返回值类型集合或者是数组情况居多

hashmap实例:

package obj_map;import java.util.HashMap;public class Demo1 {public static void main(String[] args) {HashMap<String, String> map = new HashMap<String, String>();map.put("1", "one");map.put("2", "two");map.put("3", "three");map.put("4", "four");System.out.println(map);HashMap<String, String> map2 = new HashMap<String, String>();map2.put("yi", "one");map2.put("er", "two");map2.put("san", "three");map2.put("si", "four");// 添加mapmap.putAll(map2);System.out.println(map);// 删除元素System.out.println(map.remove("yi"));System.out.println(map);System.out.println(map.remove("1", "one"));System.out.println(map);System.out.println(map.containsKey("2"));System.out.println(map.containsValue("two"));}
}

EntrySet

Entry可以认为是键值对对象

定义在Map类内

class Entry <K, V> {K k;V v;
}

K,V是完全依赖于Map约束的,这里可以使用Entry里面保存的是每一个键值对类对象

Map中提供了一个方法

Set<Entry<K, V>> entrySet

返回值是键值对类对象Set集合

Set集合中存储的是Entry类型

Entry类型是带有泛型的

实例:

package obj_map;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Demo1 {public static void main(String[] args) {HashMap<String, String> map = new HashMap<String, String>();map.put("1", "one");map.put("2", "two");map.put("3", "three");map.put("4", "four");Set<Map.Entry<String, String>> entrySet = map.entrySet();System.out.println(entrySet);}
}

输出结果

TreeMap<K, V>以及Comparable和Comparator

根据键的值进行排序

Comparable实现

Demo2.java

package obj_set;import java.util.TreeMap;public class Demo2 {public static void main(String[] args) {TreeMap<String, String> map = new TreeMap<String, String>();map.put("李四", "1");map.put("王五", "2");map.put("张三", "3");map.put("赵六", "4");System.out.println(map);TreeMap<Dog, String> map2 = new TreeMap<Dog, String>();map2.put(new Dog("one", 11), "ocean");map2.put(new Dog("three", 2), "ocean");map2.put(new Dog("two", 31), "ocean");System.out.println(map2);}
}

Dog.java

package obj_set;public class Dog implements Comparable<Dog>{String name;int age;public Dog() {}public Dog(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Dog [name=" + name + ", age=" + age + "]";}@Overridepublic int compareTo(Dog o) {return this.age - o.age;}
}

Comparator实现

Demo2.java

package obj_set;import java.util.Comparator;
import java.util.TreeMap;public class Demo2 {public static void main(String[] args) {TreeMap<String, String> map = new TreeMap<String, String>();map.put("李四", "1");map.put("王五", "2");map.put("张三", "3");map.put("赵六", "4");System.out.println(map);TreeMap<Dog, String> map2 = new TreeMap<Dog, String>(new Comparator<Dog>() {@Overridepublic int compare(Dog o1, Dog o2) {return o1.getAge() - o2.getAge();}});map2.put(new Dog("one", 11), "ocean");map2.put(new Dog("three", 2), "ocean");map2.put(new Dog("two", 31), "ocean");System.out.println(map2);}
}

推荐这种方式,更加简洁

Java基础之Map类相关推荐

  1. 【狂神说笔记—— Java基础07-常用类】

    Java基础07-常用类 Object类 大家都知道Object是所有类的父类,任何类都默认继承Object. 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类 ...

  2. Java基础 ----常用时间类

    Java基础 ----常用时间类 java.util.Date java.util.Calendar java.text.SimpleDateFormat new Date().getTime() & ...

  3. Java基础:String类

    相关阅读 Java基础:String类 Java字符串格式化 Java基础:正则表达式 1. 概述 字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组. 在实际开发中,字符串的操作 ...

  4. 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态

    @Python大星 一.Python 类的封装.继承和多态 封装 继承 Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Pytho ...

  5. 一文带你深入理解【Java基础】· 枚举类

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  6. Java基础复习-常用类

    Java基础复习-常用类 本文仅对学习过程中所缺java知识点的查缺补漏复习 String 代表字符串.Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现. St ...

  7. 【CXY】JAVA基础 之 Map

    概述: 1.键值对,key-value,具有映射关系的数据 2.Map的key不允许重复,value可以重复 3.Map里的key类似一个Set,甚至可以通过map.keySet()拿到key的Set ...

  8. Java基础——常用Map的实现细节

    2019独角兽企业重金招聘Python工程师标准>>> Java基础--Map HashMap 数据结构: 数组 + 单链表 transient Entry[] table; // ...

  9. 【Java基础】UML类图及各种线代表的关系含义总结

    文章目录 一.UML常见图 1.类图(Class Diagram) 2.对象图(Object Diagram) 3.时序图(Sequence Diagram) 二.UML类图线的概括 1.类(Clas ...

最新文章

  1. Atitit.木马病毒自动启动-------------win7计划任务的管理
  2. 在ubuntu上安装Oracle Java SDK
  3. 马化腾卸任财付通网络小贷公司董事长、总经理
  4. 经济学专业向计算机方向创业,基于市场需求的经济学专业人才培养模式研究
  5. C#实现把科学计数法(E)转化为正常数字值 (转)
  6. 3.2. tensorflow2实现Wileoxon秩和检验法(上) ——python实战
  7. 华为荣耀鸿蒙3.0安装谷歌Play商店,安装谷歌服务三件套GMS,Google
  8. C站能力认证(C4前端基础认证) //任务二:根据浮动布局以及定位布局的特性,实现构建下列(截图)中的页面
  9. 打开chm手册显示已取消到该网页的导航
  10. 软件实施人员具备的技能和素养
  11. 聚观早报 | 羊了个羊幕后推手月流水曾破亿;雷军卸任小米董事长
  12. Android使用Fragment打造万能页面切换框架(三)
  13. 交换机是一台特殊的计算机,实验三:交换机配置.ppt
  14. python跑神经网络_程序员深夜用Python跑神经网络,只为用中二动作关掉台灯!
  15. 理清offsetparent()、offsetLeft/offsetTop、offset()、position()
  16. 百度一键Root使用教程
  17. DataCamp课程 <Tidyverse> Chapter.3 分组和概括
  18. 对routes,route,router的理解
  19. while循环的练习
  20. 微信小程序读取nfc获取Ndef写入的数据

热门文章

  1. MATLAB代码:基于主从博弈多虚拟电厂动态定价和能量管理 用 Kriging 元模型拟合并代替虚拟电厂能量内部管理模型,在迭代寻优过程中
  2. EasyExcel 在网页上点击按钮下载,实现功能
  3. 计算机系大三学年鉴定表,个人大三学年自我鉴定600字
  4. 3D沙盘房产VR虚拟全景展示越来越流行
  5. 基于keras和深度学习的视频分类实战(附代码)
  6. HTML5期末大作业:直播网站设计——仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码
  7. Leetcode 15:三数之和(最详细解决方案!!!)
  8. 雅阁座椅通风怎么改的 东莞虎门座椅通风改装 本田座椅通风
  9. 怎么把图片改jpg格式?如何在线转换jpg格式?
  10. 大数据资源管理方案研究