常用方法

首先,我们应该知道HashMap类实现了Map接口,所以实现了Map常用的一些方法。

(1) 插入键值对数据

public V put(K key, V value)

(2)根据键值获取键值对值数据

public V get(Object key)

(3)获取Map中键值对的个数

public int size()

(4)判断Map集合中是否包含键为key的键值对

public boolean containsKey(Object key)

(5)判断Map集合中是否包含值为value的键值对

boolean containsValue(Object value)

(6)判断Map集合中是否没有任何键值对

public boolean isEmpty()

(7)清空Map集合中所有的键值对

public void clear()

(8)根据键值删除Map中键值对

public V remove(Object key)

示例

 import java.util.HashMap;
import java.util.Map; public class Demo01 { public static void main(String[] args) {
// 声明HashMap对象
Map<String,Integer> map= new HashMap<>(); //添加数据
map.put("ZhangYi",98);
map.put("WangEr",99);
map.put("ZhangShan",89);
map.put("Lisi",92); //根据键值对键值获取数据‘’
int value=map.get("Lisi");
System.out.println("kay:Lisi And value:"+value); //获取Map中键值对的个数
int size=map.size();
System.out.println("map 中的键值对个数为:"+size); //判断Map集合中是否包含键为key的键值对
boolean b1=map.containsKey("LiSI");
boolean b2=map.containsKey("Lisi");
System.out.println("是否包含键值为LiSI的键值对数据:"+b1);
System.out.println("是否包含键值为Lisi的键值对数据:"+b2); //判断Map集合中是否包含值为value的键值对
boolean b3=map.containsValue(99);
boolean b4=map.containsValue(100);
System.out.println("是否包含值为99的键值对数据:"+b3);
System.out.println("是否包含值为100的键值对数据:"+b4); //判断Map集合中是否没有任何键值对 boolean b5=map.isEmpty();
System.out.println("map中键值对数据是否为空:"+b5); //根据键值删除Map中键值对
int value2=map.remove("Lisi");
System.out.println("删除了键为Lisi的键值对数据,其值为:"+value2); boolean b6=map.containsKey("Lisi");
System.out.println("是否包含键值为Lisi的键值对数据:"+b6); //清空Map集合中所有的键值对
map.clear();
boolean b7=map.isEmpty();
System.out.println("map中键值对数据是否为空:"+b7); }
}

输出结果为:

kay:Lisi And value:92
map 中的键值对个数为:4
是否包含键值为LiSI的键值对数据:false
是否包含键值为Lisi的键值对数据:true
是否包含值为99的键值对数据:true
是否包含值为100的键值对数据:false
map中键值对数据是否为空:false
删除了键为Lisi的键值对数据,其值为:92
是否包含键值为Lisi的键值对数据:false
map中键值对数据是否为空:true

键值对数据遍历

(1)将Map中所有的键装到Set集合中返回

//public Set<K> keySet();
Set<K> set=map. keySet()

(2)返回集合中所有的value的值的集合

// public Collection<V> values();
Collection<V> c=map.values()

(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回

// public Set<Map.Entry<K,V>> entrtSet();
Set<Map.Entry<K,V>> entrys=map.entrySet()

示例:

 import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set; public class Demo02 {
public static void main(String[] args) {
// 声明HashMap对象
Map<String,Integer> map= new HashMap<>(); //添加数据
map.put("ZhangYi",98);
map.put("WangEr",99);
map.put("ZhangShan",89);
map.put("Lisi",92); //(1)将Map中所有的键装到Set集合中返回
Set<String> keys=map.keySet();
for(String key:keys){
int value=map.get(key);
System.out.println("key:"+key+" and value:"+value);
} //(2)返回集合中所有的value的值的集合
Collection<Integer> values=map.values();
for(int value:values){
System.out.print(value+" ");
}
System.out.println(); //(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
Set<Map.Entry<String,Integer>> entries=map.entrySet();
for(Map.Entry<String,Integer> entry :entries){
String key=entry.getKey();
int value=entry.getValue();
System.out.println("key:"+key+" and value:"+value);
}
} }

输出结果为:

key:Lisi  and  value:92
key:ZhangYi and value:98
key:ZhangShan and value:89
key:WangEr and value:99
92 98 89 99
key:Lisi and value:92
key:ZhangYi and value:98
key:ZhangShan and value:89
key:WangEr and value:99

HashMap的基本使用的更多相关文章

  1. HashMap与TreeMap源码分析

    1. 引言     在红黑树--算法导论(15)中学习了红黑树的原理.本来打算自己来试着实现一下,然而在看了JDK(1.8.0)TreeMap的源码后恍然发现原来它就是利用红黑树实现的(很惭愧学了Ja ...

  2. HashMap的工作原理

    HashMap的工作原理   HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...

  3. 计算机程序的思维逻辑 (40) - 剖析HashMap

    前面两节介绍了ArrayList和LinkedList,它们的一个共同特点是,查找元素的效率都比较低,都需要逐个进行比较,本节介绍HashMap,它的查找效率则要高的多,HashMap是什么?怎么用? ...

  4. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  5. 学习Redis你必须了解的数据结构——HashMap实现

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文链接博客园蜗牛 cnblogs.com\tdws . 首先提供一种获取hashCode的方法,是一种比较受欢迎的方式,该方法参照了一位园友的 ...

  6. HashMap与HashTable的区别

    HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和H ...

  7. JDK1.8 HashMap 源码分析

    一.概述 以键值对的形式存储,是基于Map接口的实现,可以接收null的键值,不保证有序(比如插入顺序),存储着Entry(hash, key, value, next)对象. 二.示例 public ...

  8. HashMap 源码解析

    HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表. ...

  9. java面试题——HashMap和Hashtable 的区别

    一.HashMap 和Hashtable 的区别 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Clonea ...

  10. 再谈HashMap

    HashMap是一个高效通用的数据结构,它在每一个Java程序中都随处可见.先来介绍些基础知识.你可能也知 道,HashMap使用key的hashCode()和equals()方法来将值划分到不同的桶 ...

随机推荐

  1. nodejs版本代码注释率统计上新啦~~~

    github链接在这 Installation $ npm install jscrs -g Usage $ npx jscrs or $ jscrs options 不建议使用自定义配置 confi ...

  2. 08 . Python3高阶函数之迭代器、装饰器

    Python3高阶函数之迭代器.装饰器 列表生成式 推导式就是构建比较有规律的列表,生成器. 孩子,我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里 ...

  3. Python--numpy中的tile()函数

    首先是官方给的定以(我是用的VsCode,鼠标放置在tile上出现的),建议直接看后面的示例.   def tile(A, reps) Construct an array by repeating ...

  4. oracle11g数据库导入、导出操作

    一.在linux系统中导入数据库. 1.linux中先输入 su - oracle下切换到oracle用户.然后以sysdba打开sqlplus:sqlplus / as sysdba 然后创建表空间 ...

  5. 这才是你需要的最基础的.Net基础面试题(通俗易懂,最基础的.Net)2

    51. 委托回调静态方法和实例方法有何区别? 当一个实例方法被调用时,需要通过实例对象来访问,绑定一个实例方法到委托必须同时让委托得到实例方法的代码段和实例对象的信息,这样在委托被回调时候.NET才能 ...

  6. Java实现 LeetCode 517 超级洗衣机

    517. 超级洗衣机 假设有 n 台超级洗衣机放在同一排上.开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的. 在每一步操作中,你可以选择任意 m (1 ≤ m ≤ n) 台洗衣机,与此同时将 ...

  7. java实现Playfair 密码

    一种 Playfair 密码变种加密方法如下:首先选择一个密钥单词(称为 pair)(字母不重复,且都为小写字母), 然后与字母表中其他字母一起填入至一个 5x5 的方阵中,填入方法如下: 1.首先按 ...

  8. java实现第五届蓝桥杯圆周率

    圆周率 数学发展历史上,圆周率的计算曾有许多有趣甚至是传奇的故事.其中许多方法都涉及无穷级数. 图1.png中所示,就是一种用连分数的形式表示的圆周率求法. 下面的程序实现了该求解方法.实际上数列的收 ...

  9. webpack从单页面到多页面

    前言 从上次更完webpack从什么都不懂到入门之后,好久没有更新过文章了,可能是因为自己懒了吧.今天看了下自己的索引量少了一半o(╥﹏╥)o,发现事态严重,赶紧更新一篇23333 也是因为最近踩了一 ...

  10. JSP+SSM+Mysql实现的学生成绩管理系统

    项目简介 项目来源于:https://gitee.com/z77z/StuSystem 本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统.主要实现的功能有教师管理.学生管理.课程管理.学生 ...