一、HashMap概述;

1.HashMap是一个散列表,它存储的是键值对(key-value)映射;

2.HashMap继承AbstractMap,实现了Map,Cloneable,Serializable接口;

3.HashMap的实现不是同步的,线程不安全,但是效率高;

4.HashMap允许null键和null值,是基于哈希表的Map接口实现;

5.哈希表的作用是用来保证键的唯一性;

6.HashMap的实例有两个参数影响其性能:初试容量和加载因子,当哈希表中的条目数超出加载因子与当前容量的乘积时,要对哈希表进行rehash操作(即重建内部数据结构),容量扩大约为之前的两倍,加载因子默认值为0.75;

二、HashMap的三种遍历方式;

第一种:遍历HashMap的entrySet键值对集合

1.通过HashMap.entrySet()得到键值对集合;

2.通过迭代器Iterator遍历键值对集合得到key值和value值;

package com.xyfer;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class HashMapTest { public static void main(String[] args) {
// 创建一个key和value均为String的Map集合
Map<String, String> map = new HashMap<String, String>();
map.put("1", "11");
map.put("2", "22");
map.put("3", "33");
// 键和值
String key = null;
String value = null;
// 获取键值对的迭代器
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
key = (String) entry.getKey();
value = (String) entry.getValue();
System.out.println("key:" + key + "---" + "value:" + value);
} } }

控制台打印结果:

第二种:遍历HashMap键的Set集合获取值;

1.通过HashMap.keySet()获得键的Set集合;

2.遍历键的Set集合获取值;

package com.xyfer;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class HashMapTest { public static void main(String[] args) {
// 创建一个key和value均为String的Map集合
Map<String, String> map = new HashMap<String, String>();
map.put("1", "11");
map.put("2", "22");
map.put("3", "33");
// 键和值
String key = null;
String value = null;
// 获取键集合的迭代器
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
key = (String) it.next();
value = (String) map.get(key);
System.out.println("key:" + key + "---" + "value:" + value);
} } }

控制台打印结果:

第三种:遍历HashMap“值”的集合;

1.通过HashMap.values()得到“值”的集合

2.遍历“值”的集合;

package com.xyfer;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class HashMapTest { public static void main(String[] args) {
// 创建一个key和value均为String的Map集合
Map<String, String> map = new HashMap<String, String>();
map.put("1", "11");
map.put("2", "22");
map.put("3", "33");
// 值
String value = null;
// 获取值集合的迭代器
Iterator it = map.values().iterator();
while (it.hasNext()) {
value = (String) it.next();
System.out.println("value:" + value);
}
}
}

控制台打印结果:

HashMap概述及其三种遍历方式的更多相关文章

  1. 二叉树及其三种遍历方式的实现(基于Java)

    二叉树概念: 二叉树是每个节点的度均不超过2的有序树,因此二叉树中每个节点的孩子只能是0,1或者2个,并且每个孩子都有左右之分. 位于左边的孩子称为左孩子,位于右边的孩子成为右孩子:以左孩子为根节点的 ...

  2. HashMap的两种遍历方式

    HashMap的两种遍历方式 HashMap存储的是键值对:key-value . java将HashMap的键值对作为一个整体对象(java.util.Map.Entry)进行处理,这优化了Hash ...

  3. HashMap 中7种遍历方式的性能分析

    随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题. 本文先从 HashMap 的遍历方法讲起,然后再从性能. ...

  4. HashMap 的 7 种遍历方式与性能分析

    前言 随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题. 本文先从 HashMap 的遍历方法讲起,然后再从 ...

  5. Map三种遍历方式

    Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...

  6. Map 的四种遍历方式

    Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...

  7. Map集合的几种遍历方式

    Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1 ...

  8. Map的两种遍历方式

    ********************************************************************************* ****************** ...

  9. iOS开发中数组常用的五种遍历方式

    随着iOS的不断发展,apple也不断推出性能更高的数组遍历方式,下面将对熟悉的五种遍历方式进行列举. 首先定义一个数组,并获取数组长度 NSArray *array=@[",]; NSIn ...

随机推荐

  1. Day 36 网络编程-计算机的发展

    手工操作 —— 穿孔卡片 批处理 —— 磁带存储和批处理系统 多道程序系统 分时系统 实时系统 通用操作系统 操作系统的进一步发展 操作系统的作用 手工操作 —— 穿孔卡片 1946年第一台计算机诞生 ...

  2. Day 26封装

    一.封装 广义上的封装: 属于一个类的静态和动态属性,总是出现在一个类中. 使用的永远用类名或者对象名调用. 狭义上的封装:就是把变量和方法私有化,在类的外部以及子类中不能直接使用了 . class ...

  3. 鬼知道是啥系列之——STL(lower_bound(),upper_bound() )

    引子,不明觉厉:   百度,渐入佳境: 头铁,入门到放弃: lower_bound(): 头文件:  #include<algorithm>函数功能:  函数lower_bound()在f ...

  4. [JavaScript] css将footer置于页面最底部

    <!-- 父层 --> <div id="wapper"> <!-- 主要内容 --> <div id="main-conten ...

  5. Spring MVC+MySQL保存中文变成乱码

    环境:MySQL,Spring MVC3.2.0,jQuery v2.0.3,使用JdbcTemplate访问数据库,相当于全套Spring解决方案. 现象 直接使用表单POST,或者使用jQuery ...

  6. java中常见的异常

    空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:Arra ...

  7. klee 测试一个简单的正则表达式匹配函数

    函数源代码位于 klee源码 的examples/regexp文件夹下面:c程雪源码文件名为  Regexp.c First Step: 使用clang编译器将c源代码转化为llvm位码形式.如果你的 ...

  8. 微服务是"银弹"吗?

    前言:所谓"银弹",本意是用金属银做成的子弹:在古老的传说里它是杀死狼人的有效武器.在著作<人月神话>也有描述.微服务是当前软件界流行的名词,那么它能成为像银弹一样厉害 ...

  9. 抓取出现时间3s后消失的元素

    背景:日常自动化脚本编写中,可能需要定位,获取元素的位置,通常会遇到一种元素,只出现几秒,几秒后慢慢消失的,这个时候,如果要抓取这个提示,如果和它比手速,当你手速比较快,可以箭头抓取到,但当这个元素的 ...

  10. Window - 浏览器对象模型

    浏览器对象模型 (BOM) 浏览器对象模型(Browser Object Model (BOM))尚无正式标准. 由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因 ...