Java数据结构之HashMap和HashSet

Java数据结构之HashMap和HashSet

HashMap

介绍

HashMap是一种基于哈希表实现的Map集合,它提供了快速的插入、查询、删除操作。HashMap中存储的元素是以键值对(Key-Value)的形式存储的,其中Key是用来从Map中查找值的索引,Value是存储在Map中的值。HashMap中的Key和Value都可以为null,但是在使用时需要注意它们的影响。

用法

创建HashMap对象

Map<String, Integer> map = new HashMap<>();

插入元素

map.put("one", 1);
map.put("two", 2);
map.put("three", 3);

获取元素

int value = map.get("two"); // value = 2

删除元素

map.remove("one");

遍历元素

for (Map.Entry<String, Integer> entry : map.entrySet()) {
    String key = entry.getKey();
    int value = entry.getValue();
    System.out.println(key + ": " + value);
}

示例

示例1:计算字符串中每个字符出现的次数

String str = "Hello World";
Map<Character, Integer> map = new HashMap<>();

for (char ch : str.toCharArray()) {
    if (map.containsKey(ch)) {
        map.put(ch, map.get(ch) + 1);
    } else {
        map.put(ch, 1);
    }
}

for (Map.Entry<Character, Integer> entry : map.entrySet()) {
    char key = entry.getKey();
    int value = entry.getValue();
    System.out.println(key + ": " + value);
}

示例2:查找数组中是否有重复元素

int[] nums = {1, 2, 3, 4, 5, 2};
Map<Integer, Integer> map = new HashMap<>();

for (int num : nums) {
    if (map.containsKey(num)) {
        System.out.println("数组中有重复元素:" + num);
        break;
    } else {
        map.put(num, 1);
    }
}

HashSet

介绍

HashSet是一种基于哈希表实现的Set集合,它同样提供了快速的插入、查询、删除操作。HashSet中存储的元素是无序的,不重复的,没有索引。HashSet中的元素可以为null,但是在使用时需要注意它的影响。

用法

创建HashSet对象

Set<String> set = new HashSet<>();

插入元素

set.add("one");
set.add("two");
set.add("three");

删除元素

set.remove("one");

遍历元素

for (String str : set) {
    System.out.println(str);
}

示例

示例1:计算字符串中不重复字符的个数

String str = "Hello World";
Set<Character> set = new HashSet<>();

for (char ch : str.toCharArray()) {
    set.add(ch);
}

System.out.println("不重复字符的个数是:" + set.size());

示例2:求两个数组的交集

int[] nums1 = {1, 2, 3, 4, 5};
int[] nums2 = {3, 4, 5, 6, 7};
Set<Integer> set1 = new HashSet<>();
Set<Integer> set2 = new HashSet<>();

for (int num : nums1) {
    set1.add(num);
}

for (int num : nums2) {
    set2.add(num);
}

set1.retainAll(set2);

System.out.println("两个数组的交集是:" + set1);

以上就是关于Java数据结构之HashMap和HashSet的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java数据结构之HashMap和HashSet - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • Redis高效率原因及数据结构分析

    Redis高效率原因及数据结构分析 Redis高效率的原因 Redis是一款高性能、高可靠性的内存数据库,其高效率的原因主要体现在以下几个方面: 1. 内存存储 Redis数据完全存储在内存中,而不是像传统的关系型数据库一样存储在磁盘中。内存的读写速度要远远快于磁盘的读写速度,因此Redis在数据读写时的速度非常快,能够达到每秒钟数百万次的读写操作。 2. …

    数据结构 2023年5月17日
    00
  • 数据结构 数组顺序存储详细介绍

    数据结构数组顺序存储详细介绍 什么是数组顺序存储? 数组是最基本的数据结构之一,在计算机程序中使用广泛。在数组中,存储的元素类型相同且占用相同的内存空间,可以通过下标进行快速访问和修改。数组可以使用不同的方法来存储在内存中,其中最简单的方法是数组顺序存储。 数组顺序存储是指将元素按照顺序依次存储在内存中的一块连续地址中,可以方便地进行随机访问。这种方式与链式…

    数据结构 2023年5月17日
    00
  • 回溯理论基础及leetcode例题

    学习参考 回溯 与递归相辅相成;回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。 回溯搜索法 纯暴力搜索解决的问题 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式(与组合差别,排列有元…

    算法与数据结构 2023年4月17日
    00
  • C语言线性表的链式表示及实现详解

    C语言线性表的链式表示及实现详解 什么是线性表 线性表是一种在计算机科学中常见的数据结构,它由一组连接在一起的元素组成,每个元素都包含前后指针以指向相邻的元素,从而构成一个连续的线性序列。线性表可以用来存储和处理一般数据集合。 链式存储结构 线性表的链式存储结构是由若干个结构体组成的链表,每个结构体都称为一个节点。每个节点包含两个字段:一个数据域用来存放数据…

    数据结构 2023年5月17日
    00
  • Leetcode Practice — 栈和队列

    目录 155. 最小栈 思路解析 20. 有效的括号 思路解析 1047. 删除字符串中的所有相邻重复项 思路解析 1209. 删除字符串中的所有相邻重复项 II 思路解析 删除字符串中出现次数 >= 2 次的相邻字符 剑指 Offer 09. 用两个栈实现队列 239. 滑动窗口最大值 思路解析 155. 最小栈 设计一个支持 push ,pop ,…

    算法与数据结构 2023年4月17日
    00
  • C#数据结构之堆栈(Stack)实例详解

    C#数据结构之堆栈(Stack)实例详解 在编程中,我们经常需要保存一些数据,这些数据可以根据其进入的先后顺序以及其他规则进行处理和访问。其中,堆栈(Stack)是一种简单但是非常有用的数据结构。本文将为大家详细讲解堆栈(Stack)的概念、用法以及C#中的实现方法。 堆栈(Stack)概述 堆栈(Stack)是一种后进先出(LIFO)的数据结构。也就是说,…

    数据结构 2023年5月17日
    00
  • C语言数据结构之模式匹配字符串定位问题

    C语言数据结构之模式匹配字符串定位问题 什么是模式匹配字符串定位? 模式匹配字符串定位即在一个文本串中匹配一个模式串,并且返回模式串在文本串中第一次出现的位置。 例如,对于文本串“this is a test string”,我们想要匹配模式串“test”,我们期望得到的结果是第一次出现的位置为10。 KMP算法 算法思路 KMP算法是一种高效的字符串匹配算…

    数据结构 2023年5月16日
    00
  • Java集合和数据结构排序实例详解

    Java集合和数据结构排序实例详解 作为Java程序员,集合和数据结构是我们经常会用到的工具,其中排序是其中非常重要的一环。本文将为大家详细介绍Java中集合和数据结构排序的实例。 Java集合排序 在Java中,集合排序通常使用Collections工具类来完成。Collections提供了多种排序算法,包括插入排序、选择排序、归并排序等等。例如,下面的示…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部