博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HashMap使用及完整测试用例
阅读量:2492 次
发布时间:2019-05-11

本文共 5417 字,大约阅读时间需要 18 分钟。

文章目录

1.常用方法

  • put(key, value))

添加元素时,如果key已经存在,则返回旧value,并将新的value存到该key中;如果key不存在,则返回null

当key=null时,并不会抛出异常,而是按照一个特殊的方法进行存储

  • putIfAbsent(key,value):

与put的区别:如果key存在且value不为null,则不会覆盖原有的value

  • get(key):

key存在时返回对应value,key不在时返回null

  • getOrDefault(key, defaultValue):

在key不存在时,返回一个defaultValue

  • replace(key, value)):

对于存在的key,调用replace方法,会替换原来的value,并返回旧value;

对于不存在的key,replace方法什么都不做,返回null

  • forEach(BiConsumer<K, V> action):

对每个映射项执行action操作:通常传入lambda表达式作为匿名函数

2.超类Map的方法和属性

  • keySet():

该方法返回值是Map中key值的Set集合,形式:Set keySet = someMap.keySet();

  • values():

返回 HashMap 中所有 value 值所组成的 collection view(集合视图),形式:Collection values = someMap.values();

  • entrySet():

该方法返回值是一个Set集合,此集合的成员对象类型为Map.Entry,形式:Set<Map.Entry<String, String>> entries = someMap.entrySet();

  • Map.Entry

Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>;表示Map中的一个实体(一个key-value对)

获取实体中的key:getKey();获取实体的value:getValue()

3.测试用例及输出结果

import java.util.HashMap;import java.util.Map;import java.util.Iterator;import java.util.Collection;import java.util.Set;public class hashmap {
public static void main(String[] args) {
// 创建 HashMap 对象 Map
hashMap = new HashMap
(); // 添加元素(key,value) System.out.println("添加(aa,1)返回:" + hashMap.put("aa", 1)); System.out.println("添加(bb,2)返回:" + hashMap.put("bb", 2)); System.out.println("再次添加key bb返回值:" + hashMap.putIfAbsent("bb", 20)); System.out.println("第一次添加key cc返回值:" + hashMap.put("cc", 3)); System.out.println("再次添加key cc返回值:" + hashMap.put("cc", 4)); System.out.println("替换key cc返回值:" + hashMap.replace("cc", 3)); System.out.println("替换key ccc返回值:" + hashMap.replace("ccc", 3)); System.out.println(""); // 读取元素 System.out.println("读取元素:"); System.out.println("获取key 'aa'的值:" + hashMap.get("aa")); System.out.println("获取key 'aaa'的值" + hashMap.get("aaa")); System.out.println("获取key 'aaa'的值" + hashMap.getOrDefault("aaa", 0)); //判断key或value是否存在 System.out.println("key aa是否存在:" + hashMap.containsKey("aa")); System.out.println("value 1是否存在:" + hashMap.containsValue(1)); System.out.println("map中元素个数:" + hashMap.size()); System.out.println(""); // foreach遍历 System.out.println("foreach遍历映射项(实体):"); for (Map.Entry
entry : hashMap.entrySet()) {
System.out.println("Key = " + entry.getKey() + ",value = " + entry.getValue()); } System.out.println("foreach遍历映射项的键值:"); for (String key : hashMap.keySet()) {
System.out.println("Key = " + key); } System.out.println("foreach遍历映射项的value值:"); for (Integer value : hashMap.values()) {
System.out.println("Value = " + value); } System.out.println(""); // Iterator迭代器遍历 System.out.println("Iterator遍历映射项(实体):"); // 使用带泛型的迭代器: Iterator
>, 因为创建HahsMap对象使用泛型化了 Iterator
> iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry
entry = iterator.next(); System.out.println("Key = " + entry.getKey() + ",value = " + entry.getValue()); } System.out.println("Iterator遍历映射项键值:"); Iterator
iterator2 = hashMap.keySet().iterator(); while (iterator2.hasNext()) { String key = iterator2.next(); System.out.println("Key = " + key); } System.out.println("Iterator遍历映射项值:"); Iterator
iterator3 = hashMap.values().iterator(); while (iterator3.hasNext()) { Integer value = iterator3.next(); System.out.println("value = " + value); } System.out.println(""); // 使用lambda表达式 System.out.println("lambda表达式遍历映射项:"); hashMap.forEach((k,v) -> System.out.println("key = " +k + ",value = " + v)); System.out.println(""); // 使用Stream System.out.println("使用stream遍历映射项:"); hashMap.entrySet().stream().forEach(entry -> System.out.println("Key = " + entry.getKey() + ",value = " + entry.getValue())); System.out.println("使用parrallelStream遍历映射项:"); hashMap.entrySet().parallelStream().forEach(entry -> System.out.println("Key = " + entry.getKey() + ",value = " + entry.getValue())); System.out.println(""); // hampMap转换为集合 System.out.println("hampMap转换为集合:"); Set
> entries = hashMap.entrySet(); System.out.println("映射项的集合:" + entries); Set
keys = hashMap.keySet(); System.out.println("键值的集合:" + keys); Collection
values = hashMap.values(); System.out.println("value的集合:" + values); System.out.println(""); // 删除元素 hashMap.remove("aa"); System.out.println(hashMap); // 清空map hashMap.clear(); System.out.println(hashMap); }}

输出结果:

添加(aa,1)返回:null添加(bb,2)返回:null再次添加key bb返回值:2第一次添加key cc返回值:null再次添加key cc返回值:3替换key cc返回值:4替换key ccc返回值:null读取元素:获取key 'aa'的值:1获取key 'aaa'的值null获取key 'aaa'的值0key aa是否存在:truevalue 1是否存在:truemap中元素个数:3foreach遍历映射项(实体):Key = aa,value = 1Key = bb,value = 2Key = cc,value = 3foreach遍历映射项的键值:Key = aaKey = bbKey = ccforeach遍历映射项的value值:Value = 1Value = 2Value = 3Iterator遍历映射项(实体):Key = aa,value = 1Key = bb,value = 2Key = cc,value = 3Iterator遍历映射项键值:Key = aaKey = bbKey = ccIterator遍历映射项值:value = 1value = 2value = 3lambda表达式遍历映射项:key = aa,value = 1key = bb,value = 2key = cc,value = 3使用stream遍历映射项:Key = aa,value = 1Key = bb,value = 2Key = cc,value = 3使用parrallelStream遍历映射项:Key = aa,value = 1Key = bb,value = 2Key = cc,value = 3hampMap转换为集合:映射项的集合:[aa=1, bb=2, cc=3]键值的集合:[aa, bb, cc]value的集合:[1, 2, 3]{bb=2, cc=3}{}java hashmap  0.13s user 0.06s system 145% cpu 0.130 total

转载地址:http://yzerb.baihongyu.com/

你可能感兴趣的文章
用时三个月,终于把所有的Python库全部整理了!拿去别客气!
查看>>
pd.stats.ols.MovingOLS以及替代
查看>>
vnpy学习11_增加测试评估指标
查看>>
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
海龟交易法则14_掌控心魔
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>
克罗谈投资策略04_感觉与现实
查看>>
通向财务自由之路01_导读
查看>>
通向财务自由之路02_成功的决定因素:你
查看>>
中低频量化交易策略研发01_引言
查看>>
中低频量化交易策略研发06_推进的择时策略
查看>>
史丹·温斯坦称傲牛熊市的秘密
查看>>
期货市场技术分析01_理论基础
查看>>