HashMap的基本使用
常用方法
首先,我们应该知道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的基本使用的更多相关文章
- HashMap与TreeMap源码分析
1. 引言 在红黑树--算法导论(15)中学习了红黑树的原理.本来打算自己来试着实现一下,然而在看了JDK(1.8.0)TreeMap的源码后恍然发现原来它就是利用红黑树实现的(很惭愧学了Ja ...
- HashMap的工作原理
HashMap的工作原理 HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...
- 计算机程序的思维逻辑 (40) - 剖析HashMap
前面两节介绍了ArrayList和LinkedList,它们的一个共同特点是,查找元素的效率都比较低,都需要逐个进行比较,本节介绍HashMap,它的查找效率则要高的多,HashMap是什么?怎么用? ...
- Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结
2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...
- 学习Redis你必须了解的数据结构——HashMap实现
本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文链接博客园蜗牛 cnblogs.com\tdws . 首先提供一种获取hashCode的方法,是一种比较受欢迎的方式,该方法参照了一位园友的 ...
- HashMap与HashTable的区别
HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和H ...
- JDK1.8 HashMap 源码分析
一.概述 以键值对的形式存储,是基于Map接口的实现,可以接收null的键值,不保证有序(比如插入顺序),存储着Entry(hash, key, value, next)对象. 二.示例 public ...
- HashMap 源码解析
HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表. ...
- java面试题——HashMap和Hashtable 的区别
一.HashMap 和Hashtable 的区别 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Clonea ...
- 再谈HashMap
HashMap是一个高效通用的数据结构,它在每一个Java程序中都随处可见.先来介绍些基础知识.你可能也知 道,HashMap使用key的hashCode()和equals()方法来将值划分到不同的桶 ...
随机推荐
- 前端开发SEO的理解
所谓seo(Search Engine Optimization)即搜索引擎优化.简单说就是百度.谷歌搜索引擎的‘蜘蛛’,如下图: 搜索引擎蜘蛛是通过,连接地址来找到你的网站的,seo就是让你的网站符 ...
- .net remoting(一)
一.远程对象 ①RemoteHello.csproj 类库项目,程序集名称 RemoteHello ,默认命名空间 Wrox.ProCSharp.Remoting: ②派生自System.Marssh ...
- Keycloak快速上手指南,只需10分钟即可接入Spring Boot/Vue前后端分离应用实现SSO单点登录
登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种 ...
- WebServer远程部署
通过远程部署获取webshell并不属于代码层次的漏洞,而是属于配置性错误漏洞. 1.Tomcat tomcat是一个jsp/Servlet容器 端口号:8080 攻击方法: 默认口令.弱口令,爆破, ...
- 通过Android studio手动触发Android 上层GC(垃圾回收)的方法
1.打开android Studio, 2.菜单栏中点击"View"--"Tools Window"--"Profiler",可以看到对应的 ...
- Java实现 蓝桥杯VIP 算法训练 集合运算
问题描述 给出两个整数集合A.B,求出他们的交集.并集以及B在A中的余集. 输入格式 第一行为一个整数n,表示集合A中的元素个数. 第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素. 第三行 ...
- java实现最近距离
已知平面上的若干点的位置,存入一个List中.现在需要计算所有这些点中, 距离最近的两个点间的最小距离.请补全缺失的代码. 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的&quo ...
- Java实现第十届蓝桥杯迷宫
试题 E: 迷宫 本题总分:15 分 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方. 010000 000100 001001 110000 迷 ...
- 【Jquery】判断宽度跳转
$(window).resize(function(){ var wWidth = screen.width; if( wWidth < 788 ){ window.location.href= ...
- 如何优雅地停止 Spring Boot 应用?
首先来介绍下什么是优雅地停止,简而言之,就是对应用进程发送停止指令之后,能保证正在执行的业务操作不受影响,可以继续完成已有请求的处理,但是停止接受新请求. 在 Spring Boot 2.3 中增加了 ...