두 가지 특수 Java 컨테이너 클래스 List 및 Set 분석
컨테이너 클래스는 프로그래밍 효율성과 프로그래밍 기능을 크게 향상시킬 수 있습니다. 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)를 참고해주세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

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

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