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日

相关文章

  • 数据结构Typescript之哈希表实现详解

    数据结构Typescript之哈希表实现详解 什么是哈希表 哈希表(Hash Table)又称为散列表,是一种根据关键字(Key)直接访问内存存储位置的数据结构。通俗的解释就是利用一个哈希函数(Hash Function)将关键字映射到哈希表中的一个位置(索引)来进行访问,从而快速、高效地查找、插入、删除元素。 哈希表的实现 本文将介绍使用Typescrip…

    数据结构 2023年5月17日
    00
  • 深入浅析C语言中堆栈和队列

    深入浅析C语言中堆栈和队列 堆栈(Stack) 堆栈是一种先进后出(Last In First Out,LIFO)的线性数据结构,只允许在一端进行插入和删除操作。堆栈在C语言中常用于函数调用时的参数传递、表达式求值和程序中断处理等场景。 实现堆栈的基本操作 下面是堆栈的基本操作,可以用数组来实现: 初始化 #define MAX_SIZE 100 // 假设…

    数据结构 2023年5月17日
    00
  • Java数据结构BFS广搜法解决迷宫问题

    Java数据结构BFS广搜法解决迷宫问题 什么是BFS广搜法? 广度优先搜索(BFS)是一种遍历或搜索数据结构(例如树或图)的算法经典方法之一,也是解决迷宫问题的有效解法之一。BFS方法是从图的某个节点出发,以广度优先的方式依次访问与该节点相通的各节点,直到访问所有节点。BFS算法主要借助队列的数据结构来实现。 解决迷宫问题的具体实现 数据准备: 在解决迷宫…

    数据结构 2023年5月17日
    00
  • C++数据结构之双向链表

    C++数据结构之双向链表完整攻略 1. 什么是双向链表 双向链表是一种特殊的链表结构,每个节点拥有两个指针域,分别指向前继和后继节点。 双向链表不需要像单向链表那样从头到尾遍历整个链表,可以通过前后指针直接访问前后节点,提高了查找、删除、插入等操作的效率。 双向链表有一些常用的操作,如插入节点、删除节点、查找节点等。 2. 双向链表的实现 2.1 节点定义 …

    数据结构 2023年5月17日
    00
  • 浅谈Java数据结构之稀疏数组知识总结

    浅谈Java数据结构之稀疏数组知识总结 稀疏数组的定义 稀疏数组是指当一个数组中大部分元素是相同的值时,可以使用稀疏数组来保存该数组。稀疏数组的必要性在于节省内存空间,当数组中元素过多时,存储数组所需的内存空间也呈指数级增长。 稀疏数组的特点 稀疏数组存储的是一个原始的二维数组。 稀疏数组的第一行保存原始数组的基本信息,包括行数、列数、有效值的个数。 稀疏数…

    数据结构 2023年5月17日
    00
  • C语言 数据结构之数组模拟实现顺序表流程详解

    C语言 数据结构之数组模拟实现顺序表流程详解 什么是顺序表? 顺序表是一种基于连续存储结构的数据结构,它可以用一段连续的存储单元来存储线性表中的所有元素。 顺序表的实现思路 顺序表的实现主要依赖数组。我们可以定义一个数组来存储线性表的数据元素,同时再定义一个变量来保存线性表当前的长度。当需要对线性表进行插入、删除、查找等操作时,根据需求,可以通过数组的下标来…

    数据结构 2023年5月17日
    00
  • Java数据结构之常见排序算法(下)

    Java数据结构之常见排序算法(下) 前言 这是 Java 数据结构之常见排序算法的第二篇,本篇文章将继续介绍常见的排序算法。对于尚未了解基本排序算法的读者,可以先阅读 Java 数据结构之常见排序算法(上)。 快速排序 快速排序是一种使用分治思想的排序算法,其思路是将一个数组分为两个子数组,再对子数组进行排序,这个过程不断递归执行。在具体实现时,选择一个元…

    数据结构 2023年5月17日
    00
  • Java数据结构之栈与队列实例详解

    Java数据结构之栈与队列实例详解攻略 简介 栈和队列是常见的数据结构,在Java中也有对应的实现方式。本文将介绍栈和队列的概念、常见实现方式、应用场景和两个示例。 栈 概念 栈是一种具有后进先出(Last In First Out)特性的数据结构。栈可以使用数组或链表实现。 常见实现方式 基于数组的栈实现 使用数组作为底层存储结构实现栈时,需要注意栈顶指针…

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