java中的集合———— HashMap集合的增删改查

本文通过代码分析,介绍了Java中常用的HashMap集合。HashMap是键值对存储结构的集合,且无序,重点围绕其增删改查操作展开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文直接上代码,代码分析
主要介绍常用的一个HashMap集合

import java.util.*;

// Map 增删改查
// 键值对存储结构的集合 无序

public class Mapzsgc {

public static void main(String[] args) {
    HashMap hm = new HashMap();
    //增加
    hm.put(1, "太阳");
    hm.put(2, "海洋");
    hm.put(3, "大地");
    System.out.println(hm);

    //删除
    hm.remove(2);
    System.out.println(hm);

    //修改
    hm.put(3, "冰雪");
    System.out.println(hm);

    Set kt = hm.keySet();
    for(Object s:kt){

        System.out.println(hm.get(s));
    }
    System.out.println(hm.get(3));

    TreeMap tm = new TreeMap();

    //增加
    tm.put(1, "提莫");
    tm.put(2, "皮城");
    System.out.println(tm);

    //删除
    tm.remove(2);
    System.out.println(tm);

    //修改
    tm.put(1, "寒冰");
    System.out.println(tm);



}

}

### Java 中常用的集合类型及其用途 #### 1. Collection 接口下的主要子接口和实现类 Collection 是 Java 集合框架中的根接口之一,定义了一系列基本操作方法。该接口下有两个重要的分支:`List` 和 `Set`。 - **List**(列表) List 是有序的集合,允许重复元素,并且可以通过索引访问其中的每一个元素。它提供了按位置插入、删除等功能[^2]。 - ArrayList 这是最常使用的 List 实现类,内部基于动态数组实现,适合频繁随机读取场景;但是由于每次修改都需要调整整个数组大小,因此不适合大量增删操作。 - LinkedList 使用双向链表作为底层结构,对于频繁地在两端进行添加或移除节点非常高效,但在中间位置执行这些动作效率较低。此外,查找某个特定项的速度也较慢,因为必须逐个遍历链接直到找到目标为止。 - **Set**(集) Set 特点在于不允许存在相同的对象实例,即不支持重复成员。为了保证这一点,通常会重写 equals() 方法来判断两个对象是否相等。 - HashSet 利用哈希表原理构建而成,能够提供接近 O(1) 的时间复杂度完成添加/查询工作。不过需要注意的是,HashSet 并不会保持任何顺序排列。 - TreeSet 它不仅具备去重功能,还能自动按照自然序或者自定义比较器指定的方式对所有条目排序。这意味着即使原始输入序列杂乱无章,最终得到的结果仍然是有序状态。 #### 2. Map 接口及其常见实现形式 不同于上述提到的各种单值容器,Map 存储的是键(key)-值(value) 对偶组合。通过唯一标识符 key 来定位对应的 value 数据片段,从而实现了快速检索的目的[^4]。 - HashMap 此版本 map 类型同样依赖于 hashcode 计算机制达到平均情况下恒定级别的存取性能指标。然而值得注意的一点是,默认构造函数创建出来的实例不具备线程安全性特性。 ```python map = {"apple": "red", "banana": "yellow"} print(map["apple"]) # 输出 'red' ``` - TreeMap 能够依据 keys 自身属性维持升序布局,适用于那些希望获得经过整理后的关联性记录的应用场合。另外还接受 Comparator 参数定制化排序逻辑。 #### 3. Queue 与 Deque 除了以上几种典型形态之外,还有专门针对入队列(queue)/双端(deque)行为设计的数据模型可供选用。比如 ArrayDeque 就可以看作是对传统 Stack API 设计理念的一种现代化改进方案——既保留了后者易于理解的优点又克服了一些固有问题,像同步开销大之类的缺点被有效规避掉了[^3]。 ```java // 创建一个ArrayDeque并使用 Deque<String> deque = new ArrayDeque<>(); deque.addFirst("first"); deque.addLast("last"); System.out.println(deque.peekFirst()); // 打印'first' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值