首页 > 其他分享 >HashMap

HashMap

时间:2023-06-16 22:32:18浏览次数:22  
标签:map HashMap System put key println out

HashMap的使用

下面是对HashMap的一些方法的使用:代码如下

public static void main(String[] args) {

		HashMap<String,Integer> map = new HashMap<>();

		//添加元素
		Integer put1 = map.put("大文", 25);
		Integer put2 = map.put("小文", 26);
		Integer put3 = map.put("小王", 29);
		Integer put4 = map.put("小李", 28);
		Integer put5 = map.put("小博", 21);
		Integer put6 = map.put("小黄", 26);
		System.out.println("put1:" + put1);//null
		System.out.println("put2:" + put2);//null
		System.out.println("put3:" + put3);//null
		System.out.println("put4:" + put4);//null
		System.out.println("put5:" + put5);//null
		System.out.println("put6:" + put6);//null


		//替换,返回被替换的值
		Integer put = map.put("小黄", 27);
		System.out.println("put:" + put);//26

		//替换,返回被替换的值
		Integer replace1 = map.replace("小黄", 28);
		System.out.println("replace1:" + replace1);//27

		//替换,返回是否替换成功的boolean值
		boolean replace2 = map.replace("小黄", 28, 29);//key - 被替换值 -替换值
		System.out.println("replace2:" + replace2);//true

		//将newMap1中所有的映射关系添加到map集合中
		HashMap<String, Integer> newMap1 = new HashMap<>();
		newMap1.put("aaa", 10);
		newMap1.put("bbb", 20);
		newMap1.put("ccc", 30);
		newMap1.put("ddd", 40);
		map.putAll(newMap1);

		//如果key存在则返回value,如果key不存在就添加
		Integer putIfAbsent = map.putIfAbsent("小王", 123);
		System.out.println("putIfAbsent:" + putIfAbsent);//29

		//通过key获取对应的value值
		Integer integer = map.get("小李");
		System.out.println("通过key获取对应的value值:" + integer);

		//通过key获取对应的value值,如果没有key就返回默认值666
		Integer orDefault = map.getOrDefault("小王111", 666);
		System.out.println("通过key获取对应的value值:" + orDefault);

		//清空所有的元素
		//map.clear();

		System.out.println("判断map集合中是否包含某个key:" + map.containsKey("小王"));//true
		System.out.println("判断map集合中是否包含某个value:" + map.containsValue(28));//true
		System.out.println("判断map集合是否有元素:" + map.isEmpty());//false
		//有元素就返回false

		//根据key删除映射关系
		map.remove("小博");
		//根据key+value删除映射关系
		map.remove("小李", 28);

		System.out.println("获取集合元素个数:" + map.size());//8

		//获取map集合中所有的value
		Collection<Integer> values = map.values();
		System.out.println(Arrays.toString(values.toArray()));//集合->数组->字符串

		System.out.println("---------------------");

		//遍历 -- keySet()
		//思路:获取map中所有的key,存入Set集合中,遍历Set集合依次把key获取出来,利用map.get(key)获取出对应的value值
		Set<String> keySet = map.keySet();
		for (String key : keySet) {
			Integer value = map.get(key);
			System.out.println(key + "--" + value);//获取出来的也是无序的

		}
		System.out.println("--------------------");

		//遍历 - entrySet()
		//思路:获取map中所有的映射关系对象(Entry),存入Set集合,遍历Set集合依次把Entry取出来,获取Entry中的key和value
		Set<Entry<String,Integer>> entrySet = map.entrySet();
		for (Entry<String, Integer> entry : entrySet) {
			String key = entry.getKey();
			Integer value = entry.getValue();
			System.out.println(key + "--" + value);
		}
		
	}

HashMap的特点

特点:无序 + key去重/唯一,value允许重复

下面是一个例子:

public static void main(String[] args) {

		HashMap<String, Integer> map = new HashMap<>();

		map.put("aaa", 10);
		map.put("bbb", 10);
		map.put("ccc", 10);
		map.put("ddd", 10);
		map.put("ddd", 20);

		Set<Entry<String,Integer>> entrySet = map.entrySet();
		for (Entry<String, Integer> entry : entrySet) {
			String key = entry.getKey();
			Integer value = entry.getValue();
			System.out.println(key + " -- " + value);
		}
	}

输出结果为

aaa -- 10
ccc -- 10
bbb -- 10
ddd -- 20

标签:map,HashMap,System,put,key,println,out
From: https://blog.51cto.com/u_16154651/6503213

相关文章

  • Java中的WeakHashMap与类示例
    在本文中,我们将WeakHashMap 通过示例从java.util包中学习  类。我们将学到什么?WeakHashMap 课程概述WeakHashMap 类构造方法摘要WeakHashMap 类构造方法WeakHashMap 类示例1.WeakHashMap类概述WeakHashMap 是一个基于Hash表的Map接口实现的弱键。当其密钥不再正常使用......
  • HashMap内部的数据结构是什么?底层是怎么实现的?
    HashMap内部结构jdk8以前:数组+链表jdk8以后:数组+链表(当链表长度到8时,转化为红黑树)在并发的情况,发生扩容时,可能会产生循环链表,在执行get的时候,会触发死循环,引起CPU的100%问题,所以一定要避免在并发环境下使用HashMap。......
  • 为什么HashMap会产生死循环?
     HashMap死循环是一个比较常见、比较经典的问题,在日常的面试中出现的频率比较高,所以接下来咱们通过图解的方式,带大家彻底理解死循环的原因。前置知识死循环问题发生在JDK1.7版本中,造成这个问题主要是由于HashMap自身的运行机制,加上并发操作,从而导致了死循环。在JDK......
  • 2023年6月11日,TreeSet,Comparable,HashMap
    1.Set1.TreeSetTreeSet1、存储Integer的元素,升序排列2、存储String的元素,字典排列TreeSet根据元素的不同类型使用不同的排序规则publicclasstest01{/***知识点:TreeSet*1、存储Integer的元素,升序排列*2、存储String的元素,字典排列*......
  • 深入探讨源码-HashMap
    又聊到HashMap了,其实网上已经有很多关乎HashMap的文章了,本文将对HashMap的实现方式和一些关键点进行一一的说明,仅限个人理解,如有疑惑和问题,请联系作者更正。说明:JDK版本1.8.0_151HashMapHash表是一个数组+链表的结构,这种结构能够保证在遍历与增删的过程中,如果不产生hash碰撞,仅需一......
  • HashMap的实现原理
    1.HashMap概述:HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2.HashMap的数据结构:在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据......
  • JDK 1.6 与 1.8 中的 ConcurrentHashMap 学习
    ConcurrentHashMap使用segment(继承ReentrantLock)和volatile来保证线程安全性segment的数量为16,每个segment中桶(HashEntry[])的数量可以增加,桶中放的是由HashEntry组成的链表;count表示segment中元素的数量,modCount统计导致结构变化操作的次数(put、remove、replace......
  • LRU缓存与LinkedHashMap源码
    今天再刷LeetCode时,遇到了第146题LRU缓存。题目如下:请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否......
  • Map系列集合:LinkHashMap集合的原理
            ......
  • Map系列集合:HashMap
         ......