Java HashSet(散列集),HashMap(散列映射)的简单介绍

Java HashSet 和 HashMap 的简单介绍

HashSet

HashSet 是集合框架的一部分,它实现了 Set 接口,用于存储一个没有重复元素的集合。它通过散列表(Hash table)实现,散列表可以看作是一个数组(Array),数组中的元素是链表(LinkedList),每个元素称为“桶(bucket)”,桶中存储的是元素的值。

HashSet 的基本操作包括添加(add)、删除(remove)、查找(contains)和遍历(iterator)。具有 O(1) 的时间复杂度。

示例 1:添加元素,代码如下:

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<String>();
        set.add("Java");
        set.add("Python");
        set.add("C#");
        set.add("PHP");
        set.add("Ruby");
        System.out.println(set);
    }
}

运行结果:

[Python, PHP, Java, C#, Ruby]

示例 2:遍历元素,代码如下:

import java.util.HashSet;
import java.util.Iterator;

public class HashSetExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<String>();
        set.add("Java");
        set.add("Python");
        set.add("C#");
        set.add("PHP");
        set.add("Ruby");
        Iterator<String> it = set.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

运行结果:

Python
PHP
Java
C#
Ruby

HashMap

HashMap 也是集合框架的一部分,它实现了 Map 接口,用于存储一组键值对,每个键值对称为一个 entry(条目)。它也通过散列表实现,其中键值对的键称为“散列码(hash code)”,它的作用是将键值对存储到散列表中的桶中。

HashMap 的基本操作包括添加(put)、删除(remove)、查找(get)和遍历(entrySet)。具有 O(1) 的时间复杂度。

示例 1:添加键值对,代码如下:

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("Java", 1);
        map.put("Python", 2);
        map.put("C#", 3);
        map.put("PHP", 4);
        map.put("Ruby", 5);
        System.out.println(map);
    }
}

运行结果:

{C#=3, Ruby=5, PHP=4, Java=1, Python=2}

示例 2:遍历键值对,代码如下:

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("Java", 1);
        map.put("Python", 2);
        map.put("C#", 3);
        map.put("PHP", 4);
        map.put("Ruby", 5);
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " = " + entry.getValue());
        }
    }
}

运行结果:

C# = 3
Ruby = 5
PHP = 4
Java = 1
Python = 2

以上就是 Java HashSet 和 HashMap 简单介绍的攻略,希望能对你有所帮助。

阅读剩余 59%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java HashSet(散列集),HashMap(散列映射)的简单介绍 - Python技术站

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

相关文章

  • Java中Future和FutureTask的示例详解及使用

    Java中Future和FutureTask的示例详解及使用 1. 简介 Java中的Future和FutureTask都是用于异步执行任务的工具类。在某些场景下,任务执行需要花费较长时间,为了避免阻塞主线程或者降低用户体验,可以使用Future和FutureTask来实现任务的异步执行和结果的获取。 Future用于表示异步任务的结果,并提供了相应的方法来…

    Java 2023年5月26日
    00
  • 关于Java数组查询的相关问题及实例 原创

    关于Java数组查询的相关问题及实例 原创 Java中的数组是一组相同类型的数据集合。数组是一个非常重要的数据结构,在实际的代码中应用广泛。对于Java数组的查询操作,开发者也要掌握。 如何创建一个Java数组 在Java中,我们可以通过以下语句创建一个整型数组: int[] arr = new int[10]; 这个语句用于声明一个名为arr的整型数组,长…

    Java 2023年5月26日
    00
  • 详解如何将JAR包发布到Maven中央仓库

    下面我将为你详细讲解如何将JAR包发布到Maven中央仓库。 第一步:创建Maven账号 在将JAR包发布到Maven中央仓库之前,你需要先到Maven官网上创建一个账号。如果你已经有了账号,可以跳过这一步。 第二步:将JAR包发布到本地仓库 在将JAR包发布到Maven中央仓库之前,我们需要先将JAR包发布到本地仓库进行测试和验证。以下是一些简单的步骤: …

    Java 2023年5月20日
    00
  • java 中平方根(sqrt)算法 的实例详解

    Java中平方根(sqrt)算法的实例详解 在Java中,Math类提供了一些基本的数学函数。其中,sqrt()函数是求平方根的方法。本篇攻略将详细讲解Java中平方根算法的实现过程。 一、Math.sqrt()方法 Math.sqrt()方法用于求一个非负数的平方根。 该方法的语法如下: public static double sqrt(double a…

    Java 2023年5月19日
    00
  • 浅谈Java对象禁止使用基本类型

    浅谈Java对象禁止使用基本类型 什么是基本类型 基本类型是Java中的8种基本数据类型,包括boolean、byte、short、int、long、float、double和char。这些类型并不是对象,是Java中的原始类型。 为什么Java对象禁止使用基本类型 虽然基本类型在Java中的使用非常方便和高效,但是基本类型缺乏封装性,难以进行面向对象的编程…

    Java 2023年5月26日
    00
  • 一篇文章告诉你如何在Java数组中插入一个字符

    下面是详细的攻略: 1. 准备工作 在 Java 中,数组是一个固定大小的对象容器,其中每个元素都必须是相同的数据类型。在插入一个字符到数组中,我们需要先确定以下几点: 数组是否足够容量存放新元素 新元素的数据类型是否与数组中元素的数据类型相同 2. 创建新数组并复制元素 由于 Java 数组的大小是固定不变的,我们无法插入一个元素到原有的数组。因此我们需要…

    Java 2023年5月26日
    00
  • Java 中如何使用 stream 流

    使用 stream 流是 Java 中进行集合 operations 和 transformations 的便捷方法。在 Java 8 中,我们可以对集合进行过滤、映射、排序等操作,可以省去繁琐的 for 循环和 if 判断。下面是 Java 中使用 stream 流的攻略: 一、为集合创建 stream 流 在 Java 中使用 stream 流,需要先为…

    Java 2023年5月26日
    00
  • java实现秒表功能

    下面是Java实现秒表功能的完整攻略: 确定界面布局 首先,要确定秒表界面的布局,可以使用Swing包提供的JFrame、JLabel等组件。 一个简单的秒表GUI界面可以包含如下控件: 用于显示秒数的JLabel。 用于开始、停止、清零等操作的JButton。 (可选)用于记录计时时间的列表或文本框。 编写计时器逻辑 初始秒表面板布局完成后,需要编写计时器…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部