Java java지도 시간 두 가지 특수 Java 컨테이너 클래스 List 및 Set 분석

두 가지 특수 Java 컨테이너 클래스 List 및 Set 분석

Dec 17, 2016 am 11:12 AM

컨테이너 클래스는 프로그래밍 효율성과 프로그래밍 기능을 크게 향상시킬 수 있습니다. Java2에서는 SUN Company의 Joshua Bloch가 모든 컨테이너를 재설계하여 컨테이너 클래스 라이브러리의 기능을 풍부하게 했습니다.

Java2 컨테이너 클래스 라이브러리의 목적은 "객체 저장"이며, 이는 두 가지 범주로 나뉩니다.

컬렉션----독립 요소 집합 , 일반적으로 이러한 요소는 특정 규칙을 따릅니다. List는 요소의 특정 순서를 유지해야 하지만 Set은 중복 요소를 가질 수 없습니다.

맵 ----"키-값 쌍" 개체 집합, 즉 해당 요소는 쌍을 이루는 개체입니다. 가장 일반적인 응용 프로그램은 데이터 사전이며 기타 광범위한 응용 프로그램이 있습니다. 또한 Map은 모든 키로 구성된 Set과 모든 값으로 구성된 Collection 또는 키-값 쌍으로 구성된 Set을 반환할 수 있으며, 다음과 같은 경우에는 배열처럼 다차원 Map을 확장할 수도 있습니다. 맵에 있는 키-값 쌍의 각 "값"은 "그냥 맵일 뿐입니다.

1. 반복자

반복자는 디자인 패턴으로, 개발자가 시퀀스의 기본 구조를 이해할 필요 없이 시퀀스의 객체를 탐색하고 선택할 수 있는 객체입니다. 반복자는 생성 비용이 저렴하기 때문에 종종 "경량" 개체라고 불립니다.

Java의 Iterator 함수는 비교적 간단하며 한 방향으로만 이동할 수 있습니다.

(1) iterator() 메서드를 사용하여 컨테이너에 Iterator를 반환하도록 요청합니다. Iterator의 next() 메서드가 처음 호출되면 시퀀스의 첫 번째 요소를 반환합니다.

(2) next()를 사용하여 시퀀스의 다음 요소를 가져옵니다.

(3) hasNext()를 사용하여 시퀀스에 아직 요소가 있는지 확인합니다.

(4) 반복자가 새로 반환한 요소를 삭제하려면 제거()를 사용합니다.

Iterator는 Java 반복자의 가장 간단한 구현입니다. List용으로 설계된 ListIterator는 List를 두 방향으로 순회할 수 있으며 List에서 요소를 삽입하고 삭제할 수도 있습니다.

2. List의 기능적 방법

List(인터페이스): 순서는 요소의 특정 순서가 유지되도록 보장하는 가장 중요한 기능입니다. List는 Collection에 많은 메소드를 추가하여 List에서 요소를 삽입하고 제거하는 것을 가능하게 합니다(LinkedList에만 권장됨). List는 List를 두 방향으로 탐색하고 List 중간에서 요소를 삽입 및 삭제하는 데 사용할 수 있는 ListIterator를 생성할 수 있습니다.

ArrayList: 배열로 구현된 목록입니다. 요소에 대한 빠른 무작위 액세스를 허용하지만 목록 중간에서 요소를 매우 느리게 삽입하고 제거합니다. ListIterator는 ArrayList를 뒤에서 앞으로 순회하는 데만 사용해야 하며 요소를 삽입하거나 삭제하는 데는 사용하지 않아야 합니다. 이는 LinkedList보다 훨씬 비용이 많이 들기 때문입니다.

LinkedList: 순차 접근이 최적화되었습니다. List 중간에 삽입하고 삭제하는 것은 비용이 많이 들지 않지만, Random 접근은 상대적으로 느립니다(대신 ArrayList를 사용할 수 있습니다). 여기에는 addFirst(), addLast(), getFirst(), getLast(), RemoveFirst(), RemoveLast() 메소드가 있습니다. 이러한 메소드(인터페이스 또는 기본 클래스에 정의되지 않음)를 사용하면 LinkedList를 스택, 대기열 및 양방향 대기열을 사용합니다.

3. Set의 기능적 메서드

Set(인터페이스): Set에 저장된 각 요소는 중복된 요소를 저장하지 않기 때문에 고유해야 합니다. Set에 추가된 객체는 객체의 고유성을 보장하기 위해 equals() 메서드를 정의해야 합니다. Set과 Collection은 인터페이스가 완전히 동일합니다. Set 인터페이스는 요소의 순서가 유지된다는 것을 보장하지 않습니다.

HashSet: 빠른 검색을 위해 설계된 세트입니다. HashSet에 저장된 객체는 hashCode()를 정의해야 합니다.

TreeSet: 순서를 유지하는 Set으로, 하단에 트리 구조가 있습니다. 이를 사용하여 세트에서 순서가 지정된 시퀀스를 추출합니다.

LinkedHashSet: HashSet의 쿼리 속도를 가지며, 내부적으로 연결 리스트를 사용하여 요소의 순서(삽입 순서)를 유지합니다. 따라서 반복자를 사용하여 Set을 순회하면 요소가 삽입된 순서대로 결과가 표시됩니다.

HashSet은 해시 함수를 사용하여 빠른 쿼리를 위해 특별히 설계되었습니다. TreeSet은 레드-블랙 트리 데이터 구조를 사용하여 쿼리 속도를 높이는 반면, 연결된 목록을 사용하면 요소가 삽입 순서대로 저장되는 것처럼 보이도록 요소의 순서를 지정합니다. 자신만의 클래스를 생성할 때 Set은 요소의 저장 순서를 유지해야 하므로 Comparable 인터페이스를 구현하고 CompareTo() 메서드를 정의해야 합니다.

위 내용은 Java의 특수 컨테이너 클래스인 List와 Set에 대한 분석입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 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 Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명 MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명 Feb 26, 2024 pm 07:48 PM

MyBatis 동적 SQL 태그 해석: Set 태그 사용법에 대한 자세한 설명 MyBatis는 풍부한 동적 SQL 태그를 제공하고 데이터베이스 작업 명령문을 유연하게 구성할 수 있는 탁월한 지속성 계층 프레임워크입니다. 그 중 Set 태그는 업데이트 작업에서 매우 일반적으로 사용되는 UPDATE 문에서 SET 절을 생성하는 데 사용됩니다. 이 기사에서는 MyBatis에서 Set 태그의 사용법을 자세히 설명하고 특정 코드 예제를 통해 해당 기능을 보여줍니다. Set 태그란 무엇입니까? Set 태그는 MyBati에서 사용됩니다.

PHP에서 Redis 목록 작업을 구현하는 방법 PHP에서 Redis 목록 작업을 구현하는 방법 May 26, 2023 am 11:51 AM

목록 작업 //목록의 선두에서 값을 삽입합니다. $ret=$redis->lPush('city','guangzhou');//목록 끝에 값을 삽입합니다. $ret=$redis->rPush('city','guangzhou');//목록의 지정된 범위에 있는 요소를 가져옵니다. 0은 목록의 첫 번째 요소를 나타내고, -1은 마지막 요소를 나타내고, -2는 끝에서 두 번째 요소를 나타냅니다. $ret=$redis->l

JSONArray를 Java의 List로 변환하는 방법 JSONArray를 Java의 List로 변환하는 방법 May 04, 2023 pm 05:25 PM

1:JSONArray转ListJSONArray자세한 내용은 JSONArrayJSONArrayarray=newJSONArray();array.add(0,"a");array.add(1,"b");array.add(2,"c") ;Listlist=JSONObject.parseArray(array.toJSONString(),String.class);System.out.println(list.to

자바스크립트에서 세트의 요소를 삭제하는 방법 자바스크립트에서 세트의 요소를 삭제하는 방법 Jan 12, 2022 am 10:56 AM

요소를 삭제하는 방법: 1. Set 객체에서 지정된 요소를 삭제하려면 delete()를 사용합니다. 구문은 "setObj.delete(value);"입니다. 2. Clear()를 사용하여 Set 객체의 모든 요소를 ​​삭제합니다. 구문은 "setObj.delete(value);" "setObj.clear();"입니다.

C#에서 List.Sort 함수를 사용하여 목록을 정렬하는 방법 C#에서 List.Sort 함수를 사용하여 목록을 정렬하는 방법 Nov 17, 2023 am 10:58 AM

C#에서 List.Sort 함수를 사용하여 목록을 정렬하는 방법 C# 프로그래밍 언어에서는 목록을 정렬해야 하는 경우가 많습니다. List 클래스의 Sort 기능은 이러한 목적으로 설계된 강력한 도구입니다. 이 문서에서는 C#에서 List.Sort 함수를 사용하여 목록을 정렬하는 방법을 소개하고 독자가 이 함수를 더 잘 이해하고 적용하는 데 도움이 되는 특정 코드 예제를 제공합니다. List.Sort 함수는 목록의 요소를 정렬하는 데 사용되는 List 클래스의 멤버 함수입니다. 이 함수는 수신

Java 기본에서 List의 일반적인 방법은 무엇입니까 Java 기본에서 List의 일반적인 방법은 무엇입니까 May 14, 2023 am 10:16 AM

1. List 인터페이스 소개 List는 순서가 있는 모음이자 반복 가능한 모음입니다. Collection 인터페이스를 상속받았으며, 반복되는 요소는 List 컬렉션에 나타날 수 있으며, 지정된 위치의 요소는 인덱스(아래 첨자)를 통해 액세스할 수 있습니다. 2. 공통 메소드 나열 - voidadd(intindex, Obejctelement) 메소드 1. voidadd(intindex, Obejctelement) 메소드는 지정된 위치에 요소 요소를 삽입하고 후속 요소를 한 요소 뒤로 이동합니다. 2.voidadd(intindex,객체 요소

Java에서 배열을 목록으로 변환하는 방법 Java에서 배열을 목록으로 변환하는 방법 Apr 19, 2023 am 09:13 AM

1. 가장 일반적인 방법(반드시 최선은 아님)은 Arrays.asList(strArray)를 사용하는 것입니다. 배열을 List로 변환한 후에는 List를 추가하거나 삭제할 수 없으며 확인하고 수정만 할 수 있습니다. 그렇지 않으면 예외가 발생합니다. . 키 코드: Listlist=Arrays.asList(strArray);privatevoidtestArrayCastToListError(){String[]strArray=newString[2];Listlist=Arrays.asList(strArray);//변환된 목록에 데이터 조각을 삽입합니다. list.add( " 1&quot

list.sort()가 Python에서 정렬된 목록을 반환하지 않는 이유는 무엇입니까? list.sort()가 Python에서 정렬된 목록을 반환하지 않는 이유는 무엇입니까? Sep 18, 2023 am 09:29 AM

예 이 예에서는 계속하기 전에 먼저 list.sort()의 사용법을 살펴보겠습니다. 여기서는 목록을 생성하고 sort() 메서드를 사용하여 오름차순으로 정렬했습니다. - #CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)# SorttheListsinAscendingOrdermyList .sort(

See all articles