検索
ホームページJava&#&チュートリアルCore Java の HashSet の簡単な紹介
Core Java の HashSet の簡単な紹介Sep 19, 2017 am 11:43 AM
corehashsetjava

以下のエディターは、HashSet について簡単に説明する Core Java 記事を提供します (推奨)。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。編集者に従って、学生がこの質問を読んでいるときに見てみましょう。まず、私が 2 つの質問をします。その後、質問をしながらこの記事を読むと、全員がよりよく理解できるようになります。

1. 要素を追加するときに HashSet が重複した要素を追加できないのはなぜですか?

2. HashSet は null 要素を追加しますか? ソース コードを開くと、次のコードが表示されます。HashSet にも属性として HashMap があり、HashSet() の構築メソッドはこのマップをインスタンス化することであることがわかります。 HashMap について知らない場合は、私のこのブログ投稿を読んでください。また、静的な Final オブジェクト PRESENT があることに注意してください。これは何に使用されるのでしょうか。

private transient HashMap<E,Object> map;

 // Dummy value to associate with an Object in the backing Map
 private static final Object PRESENT = new Object();

 /**
  * Constructs a new, empty set; the backing <tt>HashMap</tt> instance has
  * default initial capacity (16) and load factor (0.75).
  */
 public HashSet() {
  map = new HashMap<>();
 }

次に、要素 e を HashMap に配置し、静的最終オブジェクト PRESENT を値として配置する add メソッドを開きます。追加が成功すると、HashMap は null を返します。はい、前回のブログ記事でも説明しましたが、復習としてもう一度説明しましょう。要素が HashMap に配置されている場合、その hashCode が最初に判断され、hashCode が見つからない場合は、hashCode に基づいてインデックスが計算され、hashCode が同じである場合は 2 番目の判断に基づいて配置されます。キーが等しいかどうか、および対応するバケットに配置されているかどうかを判断します。それはリンクされたリストにあります。

/**
  * Adds the specified element to this set if it is not already present.
  * More formally, adds the specified element <tt>e</tt> to this set if
  * this set contains no element <tt>e2</tt> such that
  * <tt>(e==null ? e2==null : e.equals(e2))</tt>.
  * If this set already contains the element, the call leaves the set
  * unchanged and returns <tt>false</tt>.
  *
  * @param e element to be added to this set
  * @return <tt>true</tt> if this set did not already contain the specified
  * element
  */
 public boolean add(E e) {
  return map.put(e, PRESENT)==null;

もちろん、学生たちは 2 番目の質問も考えました。hashMap は null キーをサポートしているため、HashSet は null キーを持つ要素を追加することもできます。 HashMap は非常に多くの場所で使用されており、それがどれほど重要であるかご存知ですか? !

以上がCore Java の HashSet の簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何在 Windows 11 中启用 Core Isolation 的内存完整性功能如何在 Windows 11 中启用 Core Isolation 的内存完整性功能May 10, 2023 pm 11:49 PM

Microsoft的Windows112022Update(22H2)默认启用CoreIsolation的内存完整性保护。但是,如果您运行的是旧版本的操作系统,例如Windows112022Update(22H1),则需要手动打开此功能。在Windows11中开启CoreIsolation的内存完整性功能对于不了解核心隔离的用户,这是一个安全过程,旨在通过将Windows上的基本核心活动隔离在内存中来保护它们免受恶意程序的侵害。该进程与内存完整性功能相结合,可确保

电脑core是什么意思电脑core是什么意思Sep 05, 2022 am 11:24 AM

电脑中core有两种意思:1、核心,也即内核,是CPU最重要的组成部分,CPU所有的计算、接受存储命令、处理数据都由核心执行;2、酷睿,core是英特尔的处理器名称,酷睿是英特尔公司继奔腾处理器之后推出的处理器品牌,目前已经发布了十二代酷睿处理器。

Java中如何使用HashSet.remove()方法从集合中删除元素?Java中如何使用HashSet.remove()方法从集合中删除元素?Nov 18, 2023 pm 02:17 PM

Java中使用HashSet.remove()方法可以从集合中删除指定元素。HashSet是一个实现了Set接口的集合类,它不允许存储重复元素,且不保证元素顺序。在操作HashSet时,可以使用remove()方法来删除集合中的元素。HashSet的remove()方法有两种重载形式:booleanremove(Objectobj):从集合中删除指定对象

如何修复 Windows 11 / 10 中的处理器热跳闸错误 [修复]如何修复 Windows 11 / 10 中的处理器热跳闸错误 [修复]Apr 17, 2023 am 08:13 AM

大多数设备(例如笔记本电脑和台式机)长期被年轻游戏玩家和编码人员频繁使用。由于应用程序过载,系统有时会挂起。这使用户被迫关闭他们的系统。这主要发生在安装和玩重度游戏的玩家身上。当系统在强制关闭后尝试启动时,它会在黑屏上抛出一个错误,如下所示:以下是在此引导期间检测到的警告。这些可以在事件日志页面的设置中查看。警告:处理器热跳闸。按任意键继续。..当台式机或笔记本电脑的处理器温度超过其阈值温度时,总是会抛出这些类型的警告消息。下面列出了在Windows系统上发生这种情况的原因。许多繁重的应用程序在

Java中如何使用HashSet函数进行集合操作Java中如何使用HashSet函数进行集合操作Jun 26, 2023 pm 05:15 PM

Java中的HashSet函数是一个基于哈希表实现的集合类。既然是集合类,那么它自然拥有集合操作的功能,本文将介绍如何使用HashSet函数进行集合操作。一、HashSet的定义与声明HashSet是一个集合类,因此首先需要导入Java.util包。importjava.util.HashSet;然后就可以创建一个HashSet实例:HashSet&lt;

Java文档解读:HashSet类的contains()方法用法详解Java文档解读:HashSet类的contains()方法用法详解Nov 04, 2023 am 11:43 AM

Java文档解读:HashSet类的contains()方法用法详解HashSet类是Java中常用的集合类之一,它实现了Set接口,并且基于哈希表的数据结构,具有高效的插入、删除和查找操作。其中,contains()方法是HashSet类提供的一个重要方法,用于判断集合中是否包含指定的元素。本文将详细解析HashSet类的contains()方法的用法,并

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

Java中如何使用HashSet.add()方法添加元素到集合中?Java中如何使用HashSet.add()方法添加元素到集合中?Nov 18, 2023 pm 04:56 PM

Java中使用HashSet.add()方法添加元素到集合中非常简单,下面我们来详细介绍一下。HashSet是Java中的一个集合类,它继承自AbstractSet类并实现了Set接口,HashSet的特点是无序、不重复,底层实现是基于哈希表的。在使用HashSet.add()方法添加元素时,需要注意以下几点:HashSet中只能存储对象类型的元素,不能存储

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。