北京建设网证书查询站内优化网站怎么做
2026/3/25 3:27:41 网站建设 项目流程
北京建设网证书查询,站内优化网站怎么做,网络运营者应当对其收集的用户信息严格保密并建立健全,seo运营专员在Java集合框架中#xff0c;Map是与Collection并列的核心接口#xff0c;它以**键值对#xff08;Key-Value#xff09;**的形式存储数据#xff0c;是开发中处理映射关系的必备工具。不管是日常业务开发中的数据缓存、配置存储#xff0c;还是复杂的业务逻辑映射#…在Java集合框架中Map是与Collection并列的核心接口它以**键值对Key-Value**的形式存储数据是开发中处理映射关系的必备工具。不管是日常业务开发中的数据缓存、配置存储还是复杂的业务逻辑映射Map都能发挥关键作用。今天就带大家从基础到实战彻底搞懂Map集合的使用一、Map集合的核心特性1. 键的唯一性Map中的Key是唯一的不能重复若插入相同Key的键值对新的Value会覆盖旧值。2. 值的可重复性Value可以重复多个Key可以对应同一个Value。3. 无序/有序特性不同实现类的有序性不同如HashMap无序LinkedHashMap按插入顺序排序TreeMap按Key的自然顺序排序。二、Map的常用实现类实现类 特点 适用场景HashMap 基于哈希表实现线程不安全查询效率高O(1)无序 单线程环境下的常规映射存储Hashtable 基于哈希表实现线程安全方法加synchronized效率低无序 多线程环境已被ConcurrentHashMap替代LinkedHashMap 继承HashMap维护插入/访问顺序查询效率接近HashMap 需要保留数据插入顺序的场景TreeMap 基于红黑树实现按Key自然排序/自定义排序查询效率O(logn) 需要对Key进行排序的场景ConcurrentHashMap 分段锁/CAS实现线程安全并发性能优于Hashtable 高并发环境下的映射存储三、Map集合的核心操作以最常用的HashMap为例演示基础CRUD操作javaimport java.util.HashMap;import java.util.Map;import java.util.Set;public class MapDemo {public static void main(String[] args) {// 1. 创建Map集合MapString, Integer studentScore new HashMap();// 2. 新增键值对studentScore.put(张三, 90);studentScore.put(李四, 85);studentScore.put(王五, 95);// 重复KeyValue会被覆盖studentScore.put(张三, 92);// 3. 获取值int zhangSanScore studentScore.get(张三);System.out.println(张三的成绩 zhangSanScore); // 输出92// 4. 遍历Map// 方式1遍历Key集SetString keys studentScore.keySet();for (String key : keys) {System.out.println(key studentScore.get(key));}// 方式2遍历Entry集推荐效率更高for (Map.EntryString, Integer entry : studentScore.entrySet()) {System.out.println(entry.getKey() entry.getValue());}// 5. 删除键值对studentScore.remove(李四);System.out.println(删除李四后 studentScore);// 6. 判断是否包含Key/Valueboolean hasWangWu studentScore.containsKey(王五);boolean has85 studentScore.containsValue(85);System.out.println(是否包含王五 hasWangWu); // trueSystem.out.println(是否包含85分 has85); // false}}四、Map的实战技巧1. 避免空指针使用 getOrDefault() 方法当Key不存在时返回默认值替代直接 get() 。javaint score studentScore.getOrDefault(赵六, 0); // 赵六不存在返回02. JDK8新特性使用 putIfAbsent() 避免覆盖已有值 computeIfAbsent() 懒加载创建值。java// 仅当Key不存在时才插入studentScore.putIfAbsent(赵六, 88);// 若Key不存在通过函数生成值并插入studentScore.computeIfAbsent(钱七, k - 78);3. 排序Map借助TreeMap或Stream对HashMap进行排序。java// 按Key升序排序MapString, Integer sortedMap new TreeMap(studentScore);// 按Value降序排序Stream方式studentScore.entrySet().stream().sorted(Map.Entry.String, IntegercomparingByValue().reversed()).forEach(System.out::println);五、注意事项1. HashMap的Key要求Key的类必须重写 hashCode() 和 equals() 否则会导致重复Key或查询失效。2. 线程安全问题HashMap非线程安全多线程环境下若同时进行增删改需使用ConcurrentHashMap或手动加锁。3. 性能考量HashMap初始容量和负载因子需合理设置默认初始容量16负载因子0.75避免频繁扩容。Map集合是Java开发中高频使用的工具掌握其不同实现类的特性和实战技巧能大幅提升代码的效率和健壮性。你在使用Map时遇到过哪些问题欢迎在评论区交流

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询