一、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)相关推荐

  1. Java基础学习系列--(六)【Map集合,HashMapTreeMap,斗地主、图书管理系统,排序算法】

    第一章 Map集合 1.1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存 ...

  2. Java中的Map集合遍历总结(详尽版)

    因为Map集合中的键值对排列无序,所以不能用传统的for循环来遍历,只能使用加强循环(for-each)和迭代器进行遍历. 让我们通过例子来了解Map集合的遍历: package gather; im ...

  3. 安卓取map集合转换为json_android json解析成map格式

    "discount": { "3": "34", "4": "33", "5": ...

  4. Map集合中value()方法与keySet()、entrySet()区别 ——转载

    为什么80%的码农都做不了架构师?>>>    在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet(): 将Map中所有的键存入 ...

  5. java map 队列_Java:queue队列,map集合

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口.Lin ...

  6. Map集合练习之对字符串中字母出现的次数求和

    代码需求 如有这么一个字符串 String str = "fdg+avAdc bs5dDa9c-dfs"; MapTest.java package zhouls.bigdata. ...

  7. 【mybatis】mybatis中 返回map集合

    关于mybatis返回map集合的操作: 1.mapper.xml中写一个查询返回map的sql <select id="findMap" parameterType=&qu ...

  8. Map集合的遍历(java)

    2019独角兽企业重金招聘Python工程师标准>>> Map集合通过entrySet 和 keySet都可以使用迭代器 以及for循环拿到key和value: import jav ...

  9. java map key是否存在_java中如何判断map集合中是否存在key

    有两种方法可以判断map集合中是否存在某个key. 方法1:直接使用java api提供的containsKey(): 方法2:循环遍历,逐个比较. java相关视频推荐:java视频 具体实现代码如 ...

最新文章

  1. 浅谈“闭包”,什么才是“闭包”思想!—— javascript
  2. 找出两列数据的差集_excel快速查找数据差异项
  3. 在Windows中安装OpenCV
  4. [知识图谱实战篇] 六.HTML+D3实现点击节点显示相关属性及属性值
  5. 计算机二级ms office过关,计算机二级office-计算机二级MS OFFICE过关攻略!附赠练习软件...
  6. iPhone传屏到android,冠树最新款2画面无线传屏设备,苹果/win系统电脑可以轻松快速无线传屏到投影...
  7. Oracle 的 SQL语句中 decode()函数
  8. 第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
  9. 15.【nuxt起步】-Nuxt使用jsweixin sdk
  10. 区块链 2.0:下一个计算范式
  11. 七牛云 转码_YYC松鼠短视频系统V2.0版本发布,亮点新增转码加水印功能
  12. [转]Android应用的自动更新
  13. Win7系统经常报错怎样解决?
  14. 子网划分与IP地址的概念
  15. 引用一个falsh使它显示出来
  16. 版权符号©的输入方法
  17. 聊聊故事点背后的故事
  18. 代码英雄:操作系统之战
  19. centos7下搭建lnmp环境包含yum源直接安装和源码编译安装,以及php5.3和php7.6版本
  20. 面试官问:MySQL锁与事物隔离级别你知道吗?

热门文章

  1. webpack 配置 babel
  2. RDKit toolkit实战三:描述符计算及可视化
  3. MDNN:一种用于药物-药物反应预测的多模态深度神经网络
  4. 第二十一课.粒子滤波器
  5. mysql 配置文件绑定ip_(三)设置mysql允许外部IP连接的解决方法及遇到的坑说明...
  6. 面向生信分析的高性 RStudio 服务器
  7. 科研文献|结肠直肠癌早期检测中跨群体微生物标记物的鉴定
  8. 342.基于高通量技术的微生物组研究实验设计
  9. 211.Alpha多样性箱线图(样章,11图2视频)
  10. 实用网站和在线工具推荐