아래 편집기에서는 HashSet(권장)에 대해 간략하게 설명하는 Core Java 기사를 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리도록 하겠습니다. 편집자를 따라가서 함께 살펴볼까요
학생들이 이 질문을 읽을 때 먼저 두 가지 질문을 할 것이고, 이 글을 질문과 함께 읽으면 더 잘 이해할 수 있을 것입니다.
1. 요소를 추가할 때 HashSet이 중복 요소를 추가할 수 없는 이유는 무엇입니까?
2. HashSet은 null 요소를 추가하나요?
소스 코드를 열면 다음 코드를 볼 수 있습니다. HashSet에도 속성으로 HashMap이 있고 HashSet()의 구성 방법은 이 맵을 인스턴스화하는 것입니다. HashMap에 대해 모르신다면 제 블로그 게시물을 읽어보세요. 또한 정적 최종 객체 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에 넣는 add 메소드를 열고 추가에 성공하면 HashMap이 null을 반환하고 정적 최종 객체 PRESENT를 값으로 넣습니다. 그러면 추가가 성공적입니다. 이전 블로그 게시물에서도 이에 대해 리뷰로 다시 이야기해 보겠습니다. 요소가 HashMap에 배치되면 해당 요소의 hashCode가 먼저 판단됩니다. hashCode가 발견되지 않으면 hashCode를 기반으로 인덱스가 계산되고 hashCode가 동일하면 두 번째 판단이 이루어집니다. 키가 동일하고 해당 버킷에 있는지 여부는 연결 목록에 있습니다.
/** * 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;
물론 학생들도 두 번째 질문을 생각해 본 적이 있을 것입니다. hashMap이 널 키를 지원하므로 HashSet도 널 키가 있는 요소를 추가할 수 있기 때문입니다. HashMap이 얼마나 중요한지 아시나요? !
위 내용은 Core Java의 HashSet에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

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

Java中使用HashSet.remove()方法可以从集合中删除指定元素。HashSet是一个实现了Set接口的集合类,它不允许存储重复元素,且不保证元素顺序。在操作HashSet时,可以使用remove()方法来删除集合中的元素。HashSet的remove()方法有两种重载形式:booleanremove(Objectobj):从集合中删除指定对象
![如何修复 Windows 11 / 10 中的处理器热跳闸错误 [修复]](https://img.php.cn/upload/article/000/000/164/168169038621890.png)
大多数设备(例如笔记本电脑和台式机)长期被年轻游戏玩家和编码人员频繁使用。由于应用程序过载,系统有时会挂起。这使用户被迫关闭他们的系统。这主要发生在安装和玩重度游戏的玩家身上。当系统在强制关闭后尝试启动时,它会在黑屏上抛出一个错误,如下所示:以下是在此引导期间检测到的警告。这些可以在事件日志页面的设置中查看。警告:处理器热跳闸。按任意键继续。..当台式机或笔记本电脑的处理器温度超过其阈值温度时,总是会抛出这些类型的警告消息。下面列出了在Windows系统上发生这种情况的原因。许多繁重的应用程序在

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

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

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

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


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
