常用方法

首先,我们应该知道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. win10系统systeminfo命令的过滤用法

    一.背景: 在win10系统使用systeminfo命令可以查看windows系统信息,但是,默认显示的是全部信息,由于显示内容过多,这对查看特定信息带来一定麻烦.考虑使用该命令时能否使用过滤功能,直 ...

  2. 概念辨析-Description Language还是Description Library?

    https://mp.weixin.qq.com/s/p7eyD6GkniFGHrnr8t2SZQ   概念辨析-Description Language还是Description Library? ...

  3. 用python实现汉诺塔问题

    一.用动画实现汉诺塔问题: import turtle class Stack: def __init__(self): self.items = [] def isEmpty(self): retu ...

  4. ASP.NET给图片自动添加水印

    先建一个类,感觉注释已经很详细了,有不懂的欢迎评论 using System; using System.Collections.Generic; using System.Drawing; usin ...

  5. Java实现 蓝桥杯VIP 算法提高 洗牌

    算法提高 洗牌 时间限制:1.0s 内存限制:256.0MB 问题描述 小弱T在闲暇的时候会和室友打扑克,输的人就要负责洗牌.虽然小弱T不怎么会洗牌,但是他却总是输. 渐渐地小弱T发现了一个规律:只要 ...

  6. 第七届蓝桥杯JavaB组国(决)赛部分真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.愤怒小鸟 题目描述 X星球愤怒的小鸟喜欢撞火车! 一根平直的铁轨上两火车间相距 1000 米 两火车 (不妨称A和B) 以时速 10米 ...

  7. Java实现蓝桥杯正则问题

    题目描述 考虑一种简单的正则表达式: 只由 x ( ) | 组成的正则表达式. 小明想求出这个正则表达式能接受的最长字符串的长度. 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是 ...

  8. Java实现字符串转换成整数

    1 问题描述 输入一个由数字组成的字符串,请把它转换成整数并输出.例如,输入字符串"123",输出整数123. 请写出一个函数实现该功能,不能使用库函数. 2 解决方案 解答本问题 ...

  9. java实现圆周率与级数

    ** 圆周率与级数** 圆周率 我国古代数学家对圆周率方面的研究工作,成绩是突出的.三国时期的刘徽.南北朝时期的祖冲之都在这个领域取得过辉煌战绩. 有了计算机,圆周率的计算变得十分容易了.如今,人们创 ...

  10. 06.Django-用户认证

    用户认证 Django 内置一个 auth 模块,帮助用户实现注册.登录.注销以及修改密码等功能,帮助开发者省去了很多功夫 用于认证的数据表 auth_user User是auth模块中维护用户信息的 ...