8.Map集合(HashMapTreeMap)
一、Map集合概述和使用
1.Map集合概述
Interface Map<K,V> K:键的类型 V:值的类型
将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值
创建Map集合的对象,采用的是多态的方式,具体的实现类HashMap集合
Map集合是双列集合,一个键对应一个值,键不可以重复,值可以重复
2.Map集合的基本功能
3.Map集合的获取功能
4.Map集合的两种遍历方式
package com.company;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Main {public static void main(String[] args) {Map<String,String> map = new HashMap<>();map.put("杨过","小龙女");map.put("郭靖","杨蓉");map.put("迪丽热巴","古力娜扎");//遍历方式一//首先创建Set集合,获得map的所有键Set<String> keySet = map.keySet();//使用增强for循环,进行遍历for (String key : keySet) {String value = map.get(key);System.out.println(key+" "+value);}System.out.println("=================");//遍历方式二Set<Map.Entry<String, String>> entries = map.entrySet();for (Map.Entry<String, String> entry : entries) {String key = entry.getKey();String value = entry.getValue();System.out.println(key+" "+value);}}
}
二、TreeMap集合
1.TreeMap集合概述和特点
(1) TreeMap底层是红黑树结构
(2) 依赖自然排序或者比较器排序,对键进行排序
(3) 如果键存储的是自定义对象,需要实现Comparable接口或者创建TreeMap对象时候给出比较器排序规则
2.案例实现
创建一个TreeMap集合,键是学生对象(Student),值是籍贯(String),学生属性姓名和年龄,按照年龄进行排序并遍历
要求按照学生的年龄进行排序,如果年龄相同则按照姓名进行排序
学生类
public class Student implements Comparable<Student>{private String name;private int age;public Student() {}public Student(String name, int age) {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 "Student{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic int compareTo(Student o) {//按照年龄进行排序int result = o.getAge() - this.getAge();//次要条件,按照姓名排序。result = result == 0 ? o.getName().compareTo(this.getName()) : result;return result;}}
测试类
public class Test1 {public static void main(String[] args) {// 创建TreeMap集合对象TreeMap<Student,String> tm = new TreeMap<>();// 创建学生对象Student s1 = new Student("xiaohei",23);Student s2 = new Student("dapang",22);Student s3 = new Student("xiaomei",22);// 将学生对象添加到TreeMap集合中tm.put(s1,"江苏");tm.put(s2,"北京");tm.put(s3,"天津");// 遍历TreeMap集合,打印每个学生的信息tm.forEach((Student key, String value)->{System.out.println(key + "---" + value);});}}
8.Map集合(HashMapTreeMap)相关推荐
- Java基础学习系列--(六)【Map集合,HashMapTreeMap,斗地主、图书管理系统,排序算法】
第一章 Map集合 1.1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存 ...
- Java中的Map集合遍历总结(详尽版)
因为Map集合中的键值对排列无序,所以不能用传统的for循环来遍历,只能使用加强循环(for-each)和迭代器进行遍历. 让我们通过例子来了解Map集合的遍历: package gather; im ...
- 安卓取map集合转换为json_android json解析成map格式
"discount": { "3": "34", "4": "33", "5": ...
- Map集合中value()方法与keySet()、entrySet()区别 ——转载
为什么80%的码农都做不了架构师?>>> 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet(): 将Map中所有的键存入 ...
- java map 队列_Java:queue队列,map集合
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口.Lin ...
- Map集合练习之对字符串中字母出现的次数求和
代码需求 如有这么一个字符串 String str = "fdg+avAdc bs5dDa9c-dfs"; MapTest.java package zhouls.bigdata. ...
- 【mybatis】mybatis中 返回map集合
关于mybatis返回map集合的操作: 1.mapper.xml中写一个查询返回map的sql <select id="findMap" parameterType=&qu ...
- Map集合的遍历(java)
2019独角兽企业重金招聘Python工程师标准>>> Map集合通过entrySet 和 keySet都可以使用迭代器 以及for循环拿到key和value: import jav ...
- java map key是否存在_java中如何判断map集合中是否存在key
有两种方法可以判断map集合中是否存在某个key. 方法1:直接使用java api提供的containsKey(): 方法2:循环遍历,逐个比较. java相关视频推荐:java视频 具体实现代码如 ...
最新文章
- 浅谈“闭包”,什么才是“闭包”思想!—— javascript
- 找出两列数据的差集_excel快速查找数据差异项
- 在Windows中安装OpenCV
- [知识图谱实战篇] 六.HTML+D3实现点击节点显示相关属性及属性值
- 计算机二级ms office过关,计算机二级office-计算机二级MS OFFICE过关攻略!附赠练习软件...
- iPhone传屏到android,冠树最新款2画面无线传屏设备,苹果/win系统电脑可以轻松快速无线传屏到投影...
- Oracle 的 SQL语句中 decode()函数
- 第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
- 15.【nuxt起步】-Nuxt使用jsweixin sdk
- 区块链 2.0:下一个计算范式
- 七牛云 转码_YYC松鼠短视频系统V2.0版本发布,亮点新增转码加水印功能
- [转]Android应用的自动更新
- Win7系统经常报错怎样解决?
- 子网划分与IP地址的概念
- 引用一个falsh使它显示出来
- 版权符号©的输入方法
- 聊聊故事点背后的故事
- 代码英雄:操作系统之战
- centos7下搭建lnmp环境包含yum源直接安装和源码编译安装,以及php5.3和php7.6版本
- 面试官问:MySQL锁与事物隔离级别你知道吗?
热门文章
- webpack 配置 babel
- RDKit toolkit实战三:描述符计算及可视化
- MDNN:一种用于药物-药物反应预测的多模态深度神经网络
- 第二十一课.粒子滤波器
- mysql 配置文件绑定ip_(三)设置mysql允许外部IP连接的解决方法及遇到的坑说明...
- 面向生信分析的高性 RStudio 服务器
- 科研文献|结肠直肠癌早期检测中跨群体微生物标记物的鉴定
- 342.基于高通量技术的微生物组研究实验设计
- 211.Alpha多样性箱线图(样章,11图2视频)
- 实用网站和在线工具推荐