周到的商城网站建设注册网络公司
web/
2025/10/6 17:21:19/
文章来源:
周到的商城网站建设,注册网络公司,网站小编可以在家做吗,清远市网站建设目录
一. HashMap概述
二. HashMap特点
三. HashMap构造方法
四. HashMap的常用方法
五. 使用注意事项
六. 代码示例 一. HashMap概述
HashMap 是 Java 中的一个非常重要的类#xff0c;它实现了 Map 接口#xff0c;用于存储键值对#xff08;key-value pairs#…目录
一. HashMap概述
二. HashMap特点
三. HashMap构造方法
四. HashMap的常用方法
五. 使用注意事项
六. 代码示例 一. HashMap概述
HashMap 是 Java 中的一个非常重要的类它实现了 Map 接口用于存储键值对key-value pairs。HashMap 是基于哈希表的 Map 接口实现它允许空键null key和空值null value并且不保证映射的顺序。
二. HashMap特点
基于哈希表HashMap 使用哈希表来存储数据因此它具有很快的查找速度通常为常数时间复杂度 O(1)。键值对存储HashMap 存储的是键值对其中每个键映射到一个值。键的唯一性HashMap 中的键是唯一的不允许重复的键存在。如果尝试插入具有相同键的另一个值旧值将被新值替换。允许空值和空键HashMap 允许键或值为 null。不保证顺序HashMap 不保证元素的顺序这意味着元素的顺序可能会在每次使用时发生变化。非同步HashMap 不是线程安全的。如果需要线程安全的 HashMap可以使用 Collections.synchronizedMap 方法包装它或者使用 ConcurrentHashMap。
三. HashMap构造方法
HashMap 提供了多种构造方法允许你指定初始容量和加载因子等参数
HashMap()创建一个初始容量为 16加载因子为 0.75 的空 HashMap。HashMap(int initialCapacity)创建一个指定初始容量和默认加载因子0.75的空 HashMap。HashMap(int initialCapacity, float loadFactor)创建一个指定初始容量和加载因子的空 HashMap。HashMap(Map? extends K, ? extends V m)创建一个包含映射关系与指定 Map 相同的 HashMap。
四. HashMap的常用方法
put(K key, V value)将指定的值与此映射中的指定键关联。get(Object key)返回指定键所映射的值如果映射中不包含该键则返回 null。remove(Object key)如果存在一个键的映射关系则将其从映射中移除。keySet()返回映射中包含的键的 Set 视图。values()返回映射中包含的值的 Collection 视图。entrySet()返回映射中包含的键值映射关系的 Set 视图。clear()从映射中移除所有键值对。
五. 使用注意事项
当 HashMap 中的元素数量超过容量和加载因子的乘积时HashMap 会自动进行扩容这涉及到重新计算哈希值和重新分配元素可能会导致性能下降。HashMap 的 keySet()、values() 和 entrySet() 方法返回的集合视图支持对原 HashMap 的修改。在多线程环境中如果需要线程安全的 HashMap可以使用 Collections.synchronizedMap 方法包装它或者使用 ConcurrentHashMap。
六. 代码示例
代码示例中主要使用了一些map操作方法
package com.example.demo01;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;/*** 文件名HashMapMian* 创建者* 创建时间2024-11-02* 描述HashMap常用操作方式示例*/
public class HashMapMian {public static void main(String[] args) {MapString,Integer map new HashMap();//1.调用put()方法增添数据map.put(小红,19);map.put(小明,25);map.put(小黑,27);map.put(小白,21);//2.根据key获取valueSystem.out.println(map.get(小明));//3.调用remove()方法删除数据map.remove(小明);//4.调用containsKey()方法查看是否存在指定的键boolean b map.containsKey(小红);System.out.println(b);//5.调用containsValue()方法查看是否存在指定的值boolean bbb map.containsValue(19);//6.调用isEmpty()方法查看集合是否为空boolean empty map.isEmpty();System.out.println(empty);//7.获取key列表SetString keyedSet map.keySet();System.out.println(key: keyedSet);//8.获取所有值CollectionInteger values map.values();System.out.println(values);//用 Java8 流来处理值,value求和int sumOfAges map.values().stream().mapToInt(Integer::intValue).sum();System.out.println(求和: sumOfAges);// 过滤出所有大于 25 的年龄CollectionInteger filteredValues map.values().stream().filter(value - value 25).collect(Collectors.toList());System.out.println(大于 25 的年龄: filteredValues);//9.清空map集合map.clear();System.out.println(map.isEmpty());}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88027.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!