第十四届蓝桥杯集训——HashMap(无序)与TreeMap(有序)

简介: 第十四届蓝桥杯集训——HashMap(无序)与TreeMap(有序)

第十四届蓝桥杯集训——HashMap(无序)与TreeMap(有序)




 

HashMap

  • HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
  • HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
  • HashMap 是无序的,即不会记录插入的顺序。
  • HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。

包装类泛型约束

map也是支持泛型的,这个Key和Value泛型除了基本数据类型外还有【Number】、【Object】、

基本类型 引用类型
boolean Boolean
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
  • E - Element (在集合中使用,因为集合中存放的是元素)
  • T - Type(Java 类)
  • K - Key(键)
  • V - Value(值)
  • N - Number(数值类型)
  • - 表示不确定的 java 类型

HashMap无序操作

package com.item.action;
import java.util.HashMap;
import java.util.Set;
public class Demo3 {
  public static void main(String[] args) {
    HashMap<String, Object> map = new HashMap<String, Object>();
        // 添加键值对
    map.put("admin", "管理员");
    map.put("zhangsan", "张三");
    map.put("lisi", "李四");
    map.put("wangwu", "王五");
    map.put("zhaoliu", "赵六");
        System.out.println(map);
        // 修改
        map.put("admin", "管理员的值被修改");
        System.out.println(map);
        //删除
        map.remove("zhangsan");
        System.out.println(map);
        //根据key获取value
        System.out.println(map.get("zhangsan"));
        System.out.println(map.get("lisi"));
        //返回set
        Set<String> keySet = map.keySet();
        System.out.println(keySet);
        //遍历
        for (String s : keySet) {
      System.out.print(map.get(s)+",");
    }
  }
}

显示效果:

TreeMap

TreeMap是序的key-value集合,内部是通过红-黑树实现的,支持序列化 。

TreeMap有序操作

package com.item.action;
import java.util.Set;
import java.util.TreeMap;
public class Demo3 {
  public static void main(String[] args) {
    TreeMap<String, Object> map = new TreeMap<String, Object>();
        // 添加键值对
    map.put("admin", "管理员");
    map.put("zhangsan", "张三");
    map.put("lisi", "李四");
    map.put("wangwu", "王五");
    map.put("zhaoliu", "赵六");
        System.out.println(map);
        // 修改
        map.put("admin", "管理员的值被修改");
        System.out.println(map);
        //删除
        map.remove("zhangsan");
        System.out.println(map);
        //根据key获取value
        System.out.println(map.get("zhangsan"));
        System.out.println(map.get("lisi"));
        //返回set
        Set<String> keySet = map.keySet();
        System.out.println(keySet);
        //遍历
        for (String s : keySet) {
      System.out.print(map.get(s)+",");
    }
  }
}

输出效果:

 

相关文章
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
104 0
|
6天前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
15 1
|
8天前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
24 2
|
8天前
|
存储 Java 开发者
Java Map实战:用HashMap和TreeMap轻松解决复杂数据结构问题!
【10月更文挑战第17天】本文深入探讨了Java中HashMap和TreeMap两种Map类型的特性和应用场景。HashMap基于哈希表实现,支持高效的数据操作且允许键值为null;TreeMap基于红黑树实现,支持自然排序或自定义排序,确保元素有序。文章通过具体示例展示了两者的实战应用,帮助开发者根据实际需求选择合适的数据结构,提高开发效率。
29 2
|
8天前
|
存储 缓存 安全
HashMap VS TreeMap:谁才是Java Map界的王者?
HashMap VS TreeMap:谁才是Java Map界的王者?
36 2
|
6天前
|
存储 Java API
详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
【10月更文挑战第19天】深入剖析Java Map:不仅是高效存储键值对的数据结构,更是展现设计艺术的典范。本文从基本概念、设计艺术和使用技巧三个方面,详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
20 3
|
6天前
|
存储 缓存 安全
在Java的Map家族中,HashMap和TreeMap各具特色
【10月更文挑战第19天】在Java的Map家族中,HashMap和TreeMap各具特色。HashMap基于哈希表实现,提供O(1)时间复杂度的高效操作,适合性能要求高的场景;TreeMap基于红黑树,提供O(log n)时间复杂度的有序操作,适合需要排序和范围查询的场景。两者在不同需求下各有优势,选择时需根据具体应用场景权衡。
12 2
|
6天前
|
存储 安全 Java
Java Map新玩法:深入探讨HashMap和TreeMap的高级特性
【10月更文挑战第19天】Java Map新玩法:深入探讨HashMap和TreeMap的高级特性,包括初始容量与加载因子的优化、高效的遍历方法、线程安全性处理以及TreeMap的自然排序、自定义排序、范围查询等功能,助你提升代码性能与灵活性。
14 2
|
8天前
|
存储 Java
Map大揭秘:HashMap与TreeMap背后的故事,你听过吗?
Map大揭秘:HashMap与TreeMap背后的故事,你听过吗?
16 1
|
11天前
|
存储 Java
HashMap 与 TreeMap 的差异
【10月更文挑战第14天】总的来说,HashMap 和 TreeMap 各有其特点和适用范围,我们需要根据具体的需求来选择使用哪种数据结构。在实际应用中,还需要考虑性能、内存使用等因素,以确保选择最适合的集合类型。