Java基础之Map类
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类相关推荐
- 【狂神说笔记—— Java基础07-常用类】
Java基础07-常用类 Object类 大家都知道Object是所有类的父类,任何类都默认继承Object. 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类 ...
- Java基础 ----常用时间类
Java基础 ----常用时间类 java.util.Date java.util.Calendar java.text.SimpleDateFormat new Date().getTime() & ...
- Java基础:String类
相关阅读 Java基础:String类 Java字符串格式化 Java基础:正则表达式 1. 概述 字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组. 在实际开发中,字符串的操作 ...
- 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态
@Python大星 一.Python 类的封装.继承和多态 封装 继承 Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Pytho ...
- 一文带你深入理解【Java基础】· 枚举类
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- Java基础复习-常用类
Java基础复习-常用类 本文仅对学习过程中所缺java知识点的查缺补漏复习 String 代表字符串.Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现. St ...
- 【CXY】JAVA基础 之 Map
概述: 1.键值对,key-value,具有映射关系的数据 2.Map的key不允许重复,value可以重复 3.Map里的key类似一个Set,甚至可以通过map.keySet()拿到key的Set ...
- Java基础——常用Map的实现细节
2019独角兽企业重金招聘Python工程师标准>>> Java基础--Map HashMap 数据结构: 数组 + 单链表 transient Entry[] table; // ...
- 【Java基础】UML类图及各种线代表的关系含义总结
文章目录 一.UML常见图 1.类图(Class Diagram) 2.对象图(Object Diagram) 3.时序图(Sequence Diagram) 二.UML类图线的概括 1.类(Clas ...
最新文章
- Atitit.木马病毒自动启动-------------win7计划任务的管理
- 在ubuntu上安装Oracle Java SDK
- 马化腾卸任财付通网络小贷公司董事长、总经理
- 经济学专业向计算机方向创业,基于市场需求的经济学专业人才培养模式研究
- C#实现把科学计数法(E)转化为正常数字值 (转)
- 3.2. tensorflow2实现Wileoxon秩和检验法(上) ——python实战
- 华为荣耀鸿蒙3.0安装谷歌Play商店,安装谷歌服务三件套GMS,Google
- C站能力认证(C4前端基础认证) //任务二:根据浮动布局以及定位布局的特性,实现构建下列(截图)中的页面
- 打开chm手册显示已取消到该网页的导航
- 软件实施人员具备的技能和素养
- 聚观早报 | 羊了个羊幕后推手月流水曾破亿;雷军卸任小米董事长
- Android使用Fragment打造万能页面切换框架(三)
- 交换机是一台特殊的计算机,实验三:交换机配置.ppt
- python跑神经网络_程序员深夜用Python跑神经网络,只为用中二动作关掉台灯!
- 理清offsetparent()、offsetLeft/offsetTop、offset()、position()
- 百度一键Root使用教程
- DataCamp课程 <Tidyverse> Chapter.3 分组和概括
- 对routes,route,router的理解
- while循环的练习
- 微信小程序读取nfc获取Ndef写入的数据
热门文章
- MATLAB代码:基于主从博弈多虚拟电厂动态定价和能量管理 用 Kriging 元模型拟合并代替虚拟电厂能量内部管理模型,在迭代寻优过程中
- EasyExcel 在网页上点击按钮下载,实现功能
- 计算机系大三学年鉴定表,个人大三学年自我鉴定600字
- 3D沙盘房产VR虚拟全景展示越来越流行
- 基于keras和深度学习的视频分类实战(附代码)
- HTML5期末大作业:直播网站设计——仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码
- Leetcode 15:三数之和(最详细解决方案!!!)
- 雅阁座椅通风怎么改的 东莞虎门座椅通风改装 本田座椅通风
- 怎么把图片改jpg格式?如何在线转换jpg格式?
- 大数据资源管理方案研究