摘要

本文主要介绍Map接口下的HashMap和TreeMap。

HashMap

HashMap是基于哈希表的 Map 接口的实现,是无序的

  1. clear()//清空。
  2. containsKey(Object key)//如果包含指定键,返回true
  3. containsValue(Object value)//如果包含指定值, 返回true
  4. get(Object key)//返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
  5. isEmpty()//如果此映射不包含键-值映射关系,则返回 true
  6. put(K key, V value)//在此映射中关联指定值与指定键。
  7. remove(Object key)//从此映射中移除指定键的映射关系(如果存在)。
  8. size()返回此映射中的键-值映射关系数。

实例

HashMap<Integer, Integer> m = new HashMap<>();//定义格式
m.put(100,1);
System.out.print(m.get(100)); // 1

TreeMap

TreeMap是基于红黑树实现的,是有序的, 可进行排序。

此实现为 containsKey、get、put 和 remove 操作提供受保证的 log(n) 时间开销

  1. clear()//清空
  2. containsKey(Object key)//如果包含指定键,返回true
  3. containsValue(Object value)//如果包含指定值, 返回true
  4. get(Object key)//返回指定键的值, 如果不存在返回null
  5. firstKey()//返回此映射中当前第一个(最低)键。
  6. lastKey()返回映射中当前最后一个(最高)键
  7. ceilingKey(K key)返回大于等于给定键的最小键;如果不存在这样的键,则返回 null。
  8. floorKey(K key)返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。

HashMap和TreeMap的遍历方式

HashMap和TreeMap可以根据迭代器遍历,但,它俩不能直接遍历,可以遍历 键的集合, 值的集合, 键值对的集合。

1.通过keySet()获得键,然后根据键遍历值

使用while + Iterator

TreeMap<Integer, String> m = new TreeMap<>();
m.put(1,"A");
m.put(2,"B");
Set<Integer> s = m.keySet();
Iterator it = s.iterator();
Integer key = null; // 这里必须必须声明为类。
while(it.hasNext()){
key = (Integer)it.next();
String value = m.get(key);
System.out.print(value);
}

使用增强for

TreeMap<Integer, String> m = new TreeMap<>();
m.put(1,"A");
m.put(2,"B");
for(int k : m.keySet()){
System.out.print(m.get(k));
}

2.直接通过values()遍历值

使用while 和 Iterator

TreeMap<Integer, String> m = new TreeMap<>();
m.put(1,"A");
m.put(2,"B");
Collection<String> s = m.values();
Iterator it = s.iterator();
String value = null; // 这里必须必须声明为类。
while(it.hasNext()){
value = (String)it.next();
System.out.print(value);
}

使用增强for

TreeMap<Integer, String> m = new TreeMap<>();
m.put(1,"A");
m.put(2,"B");
for(String value : m.values()){
System.out.print(value);
}

增强for还是十分方便滴

常用Java API:HashMap 和 TreeMap的更多相关文章

  1. 算法竞赛中的常用JAVA API :HashMap 和 TreeMap(转载)

    算法竞赛中的常用JAVA API :HashMap 和 TreeMap 摘要 本文主要介绍Map接口下的HashMap和TreeMap. HashMap HashMap是基于哈希表的 Map 接口的实 ...

  2. 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)

    算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...

  3. 常用Java API之Ramdom--用代码模拟猜数小游戏

    常用Java API之Ramdom Ramdom类用来生成随机数字.使用起来也是三个步骤: 1.导包 import java.util.Random; 2.创建 Random r = new Rand ...

  4. 常用Java API之Scanner:功能与使用方法

    Scanner 常用Java API之Scanner:功能与使用方法 Scanner类的功能:可以实现键盘输入数据到程序当中. 引用类型的一般使用步骤:(Scanner是引用类型的) 1.导包 imp ...

  5. 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)(转载)

    算法竞赛中的常用JAVA API:PriorityQueue(优先队列) PriorityQueue 翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆 ...

  6. 8.算法竞赛中的常用JAVA API :Calendar日期类

    8.算法竞赛中的常用JAVA API :Calendar日期类 摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经 ...

  7. 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)

    7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...

  8. 6.算法竞赛中的常用JAVA API :Math类(转载)

    6.算法竞赛中的常用JAVA API :Math类 求最值 最小值 Math.min(int a, int b) Math.min(float a, float b) Math.min(double ...

  9. 算法竞赛中的常用JAVA API :大数类(转载)

    5.算法竞赛中的常用JAVA API :大数类 摘要 java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1 对应的十进制数是9223372036854775807(long类型的最大 ...

随机推荐

  1. Java实现发送邮件,图片,附件

    参照地址 1.JavaMail 介绍 JavaMail 是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如前面 ...

  2. Alibaba《Java开发手册》之Java代码规范笔记

    前言 一种工具被发明出来,那么针对这种工具的各种使用规则.条条框框就随之而来.无规矩不成方圆,无制度则无国家,无风格不成代码!治国有国法.排兵布阵有章法.那么写代码也有它界内通用的不成俗的约定.最近刚 ...

  3. 一个完整的SEO优化方案

    一个完整的SEO优化方案主要由四个小组组成: 一.前端/页编人员 二.内容编辑人员 三.推广人员 四.数据分析人员 接下来,我们就对这四个小组分配工作. 首先,前端/页编人员主要负责站内优化,主要从四 ...

  4. css 背景图片路径问题

    背景图片路径找寻失败问题 1.加~ background-image: url("~@/assets/login/login-bg.png"); background-size: ...

  5. 鸿蒙内核源码分析(GN应用篇) | GN语法及在鸿蒙的使用 | 百篇博客分析OpenHarmony源码 | v60.01

    百篇博客系列篇.本篇为: v60.xx 鸿蒙内核源码分析(gn应用篇) | gn语法及在鸿蒙的使用 | 51.c.h.o 编译构建相关篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙 ...

  6. Spirit带你彻底搞懂JS的6种继承方案

    JavaScript中实现继承的6种方案 01-原型链的继承方案 function Person(){ this.name="czx"; } function Student(){ ...

  7. T-SQL——关于SQL打开Excel文件

    目录 0. 背景说明 1. 安装Access Database Engine 1. SQL脚本 3. .net项目中通过Micsoft.ACE.oledb读取Excel文件 志铭-2021年10月1日 ...

  8. 全网最新最详细最明白教程之Spring源码搭建,没有之一,超详细

    相关帖子有很多但是都不是最新的Gradle,我在使用Gradle最新版编译的时候简直坑死我了,弄了好久.接下来给大家详细说一下这个安装过程,以及相关的软件版本号. 相关软件.依赖的版本号: Gradl ...

  9. Go语言之结构体与方法

    一.结构体 结构体是一系列属性的集合(类似于 Python 中的类) 1.结构体的定义与使用 // 定义 type Person struct { Name string Age int Sex st ...

  10. 超详细的Eureka源码解析

    Eureka简介 Eureka是什么? Eureka是基于REST(Representational State Transfer)服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移 ...