数据结构之HashMap

HashMap是Java实现的高效键值对数据结构,基于哈希表,支持快速查找和插入。它允许存储null键和值,但不保证元素顺序且非线程安全。在处理哈希冲突时,HashMap使用链表或红黑树。示例代码展示了如何统计单词出现次数。
摘要由CSDN通过智能技术生成

HashMap是Java编程语言中的一种数据结构,它实现了Map接口。它是一个键值对的集合,其中键和值都是对象。给定一个键,它可以在常数时间内查找对应的值,这使得它成为查找和插入操作效率非常高的一种数据结构。

HashMap是基于哈希表的实现方式,它通过哈希函数将键映射到哈希表中的一个索引位置。在插入或查找时,只需要对键进行哈希计算,就可以快速定位到对应的位置,并访问相应的值。如果有多个键映射到同一个索引位置,这就是哈希冲突,HashMap会使用链表或红黑树等数据结构来解决冲突问题。

HashMap具有以下特点:

  • 允许存储null键和null值。

  • 不保证元素的顺序,即迭代的顺序可能与插入顺序不同。

  • 初始容量和负载因子是可以调整的,可以根据实际需要进行设置。

  • 在并发环境下不是线程安全的,需要使用同步机制来保证线程安全性。

import java.util.HashMap;

public class WordCount {

    public static void main(String[] args) {
        String[] words = {"apple", "banana", "cherry", "apple", "banana", "orange", "cherry", "apple"};
        HashMap<String, Integer> wordCounts = new HashMap<>();
        for (String word : words) {
            int count = wordCounts.getOrDefault(word, 0);
            wordCounts.put(word, count + 1);
        }
        for (String word : wordCounts.keySet()) {
            int count = wordCounts.get(word);
            System.out.println(word + ": " + count);
        }
    }

}

就会输出:

apple: 3
banana: 2
orange: 1
cherry: 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值