컬렉션 인터페이스 : 컬렉션은 가장 기본적인 컬렉션 인터페이스로 Java 컬렉션에 적합한 일반적인 방법을 선언합니다 (세트 및 목록 만 포함). 연결 및 맵을 상속받습니다
컬렉션 인터페이스 방법 :
부울 추가 (Object O) : 컬렉션에 개체에 대한 참조 추가
void clear () : 컬렉션의 모든 객체 삭제, 즉 더 이상 이러한 개체에 대한 참조를 보유하지 않습니다.
부울 isempty () : 세트가 비어 있는지 결정합니다
부울이 포함되어 있습니다 (Object O) : 컬렉션에 특정 객체에 대한 참조가 유지되는지 여부를 결정합니다.
iterar iterator () : 컬렉션의 요소를 반복하는 데 사용할 수있는 반복자 객체를 반환합니다.
부울 제거 (Object O) : 컬렉션에서 객체에 대한 참조를 제거합니다.
int size () : 컬렉션의 요소 수를 반환합니다.
Object [] toArray () : 컬렉션의 모든 요소가 포함 된 배열을 반환합니다.
정보 : iterator () 및 ToArray () 메소드는 컬렉션의 모든 요소에 사용됩니다. 전자는 반복자 객체를 반환하고 후자는 컬렉션의 모든 요소를 포함하는 배열을 반환합니다.
반복자 인터페이스는 다음 방법을 선언합니다.
hasnext () : 컬렉션의 요소가 통과했는지 여부를 결정합니다. 그렇지 않다면 True를 반환하십시오
다음 () : 다음 요소를 반환합니다
제거 () : 컬렉션에서 다음 () 메소드에 의해 반환 된 이전 요소를 제거하십시오.
세트 (세트) : 세트는 가장 간단한 유형의 컬렉션입니다. 컬렉션의 객체는 특정 방식으로 정렬되지 않으며 중복 객체가 없습니다. 세트 인터페이스는 주로 두 개의 구현 클래스를 구현합니다.
해시 세트 : 해시 세트 클래스는 해시 알고리즘을 사용하여 컬렉션의 객체에 액세스하고 액세스 속도는 비교적 빠릅니다.
Treeset : TreeSet 클래스는 SortedSet 인터페이스를 구현하여 컬렉션의 객체를 정렬 할 수 있습니다.
세트 사용 : 객체, 중복 객체 없음에 대한 참조를 저장합니다.
set set = new Hashset (); String S1 = 새 문자열 ( "Hello"); String S2 = S1; String S3 = New String ( "World"); Set.Add (S1); Set.Add (S2); Set.Add (S3);
System.out.println (set.size ()); // 인쇄 컬렉션의 개체 수는 2입니다.
Set의 add () 메소드는 객체가 컬렉션에 저장되었는지 여부를 어떻게 결정합니까?
Boolean isexists = false; iterator iterator = set.iterator (); while (it.hasnext ()) {String Oldstr = it.next (); if (newst.equals (Oldstr)) {isexists = true;}}목록 : 목록의 특성은 요소가 선형으로 저장되고 복제 객체를 컬렉션에 저장할 수 있다는 것입니다.
목록 인터페이스의 주요 구현 클래스에는 다음이 포함됩니다.
ArrayList () : 길이가 배열로 변경 될 수 있음을 나타냅니다. 요소에 무작위로 액세스 할 수 있으며 ArrayList ()에 요소를 삽입하고 삭제하는 속도는 느립니다.
LinkedList () : 구현에서 링크 된 목록 데이터 구조를 사용합니다. 빠른 삽입 및 삭제, 느린 접근.
목록의 무작위 액세스의 경우 특정 위치에 위치한 요소 만 무작위로 검색하는 것입니다. get (int index) 목록의 메소드는 매개 변수 인덱스에 의해 지정된 인덱스 위치에서 컬렉션의 객체에 다시 넣고 첨자는 "0"에서 시작됩니다. 컬렉션에서 모든 객체를 검색하는 가장 기본적인 두 가지 방법 :
1 : 루프 및 get () 메소드의 경우 :
for (int i = 0; i <list.size (); i ++) {system.out.println (list.get (i));}2 : 반복기 사용 :
iterator it = list.iterator (); while (it.hashnext) {system.out.println (it.next);}
지도 :지도는지도 키 객체 및 값 객체 모음입니다. 그것의 각 요소에는 한 쌍의 주요 객체와 값 객체가 포함됩니다.
컬렉션 인터페이스에서 맵이 상속되지 않으면 키 객체가 주어질 때마다 해당 값 객체가 반환됩니다.
지도를위한 일반적인 방법 :
1 작업 추가 및 삭제 :
객체 풋 (객체 키, 객체 값) : 컬렉션에 요소 추가
개체 제거 (개체 키) : 키와 관련된 요소를 제거합니다
void putall (map t) : 특정 이미지에서 이미지에 모든 요소를 추가합니다.
void clear () : 이미지에서 모든 맵을 제거하십시오
2 쿼리 작업 :
개체 get (Object Key) : 키워드 키와 관련된 값을 얻습니다. 맵 컬렉션의 주요 객체는 반복 할 수 없습니다. 즉, equals () 메소드에 의해 비교되는 두 가지 주요 객체의 결과는 false입니다. 그러나 여러 키는 동일한 값 객체에만 독점적으로 매핑 할 수 있습니다.
연결 : 수집 유틸리티 클래스. 연결은 Java 컬렉션을위한 실제 정적 방법을 제공합니다
요약 :
Java 컬렉션의 기본 사용이 요약되었습니다. 위는 가장 일반적으로 사용되는 Java 컬렉션입니다. 자세한 내용은 JDK 도움말 문서를 참조하십시오. 하하,지도의 더 많은 애플리케이션이 있습니다. 연결은 일상적인 개발에 매우 유용한 목록 /지도에 대한 많은 실용적인 방법을 제공합니다.
부울은 키 (객체 키)를 포함합니다 : 이미지에 키워드 키가 있는지 결정합니다.
부울은 value (객체 값)를 포함합니다 : 이미지에 값이 있는지 여부를 결정합니다.
int size () : 현재 이미지의 맵 수를 반환합니다.
Boolean isempty () : 이미지에 매핑이 있는지 결정합니다.
목록은 작업을 정렬하거나 편집하지 않고 객체가 입력하는 순서 대상으로 객체를 저장합니다. 설정 세트는 각 객체에 대해 한 번만 허용하고 자체 내부 정렬 방법을 사용합니다 (일반적으로 요소가 순서가 아닌 SET에 속하는지 여부에만 적용됩니다. 그렇지 않으면 목록을 사용해야합니다).
맵은 또한 각 요소의 사본을 저장하지만 이는 "키"를 기반으로하며 맵에 내장형 정렬이 있으므로 요소가 추가되는 순서에 신경 쓰지 않습니다. 요소가 추가되는 순서가 중요하다면 LinkedHashset 또는 LinkedHashmap을 사용해야합니다.
목록 기능 방법 :
실제로 두 가지 유형이 있습니다. 하나는 기본 Arraylist이며, 요소에 대한 무작위 액세스의 장점이 있고, 다른 하나는 더 강력한 링크드리스트이며, 빠른 임의의 액세스를 위해 설계되지 않았지만보다 일반적인 방법 세트가 있습니다.
목록 : 순서는 목록의 가장 중요한 기능입니다. 특정 요소의 순서가 유지되도록합니다. 목록은 컬렉션에 많은 방법을 추가하여 목록의 중간에 요소를 삽입 및 제거 할 수있게합니다 (LinkedList에만 권장됩니다.) 목록은 ListIterator를 생성 할 수 있으며,이를 사용하여 목록을 두 방향에서 횡단하고 목록 중간에서 요소를 삽입하고 제거 할 수 있습니다.
ArrayList : 배열별로 구현 된 목록. 요소에 빠르게 무작위로 액세스 할 수 있지만 목록의 중간에 요소를 삽입하고 제거하는 데 속도가 느립니다. Listiterator는 요소를 삽입하고 제거하지 않고 배열 목록을 통해 뒤로 앞쪽으로 반복하는 데 사용해야합니다. 그것은 링크드 목록보다 훨씬 비싸기 때문입니다.
LinkedList : 순차적 액세스가 최적화되어 있으며 목록의 중간에 삽입 및 삭제의 오버 헤드는 그리 높지 않습니다. 임의의 액세스는 비교적 느립니다. (대신 ArrayList를 사용하십시오.) 또한 addfirst (), addlast (), getFirst (), getLast (), removeFirst () 및 removelast ()도 있습니다. 이 방법 (인터페이스 또는 기본 클래스에서 정의되지 않음)은 링크 사전 목록을 스택, 큐 및 양방향 대기열로 사용합니다.
설정 기능 방법 :
Set은 수집과 정확히 동일한 인터페이스를 가지므로 앞면의 두 개의 다른 목록과 달리 추가 기능이 없습니다. 실제로 세트는 컬렉션이지만 동작은 다릅니다. (이것은 상속 및 다형성 사고의 전형적인 적용입니다 : 다른 행동 수행.) 세트는 중복 요소를 저장하지 않습니다 (요소를 판단하는 방법은 동일합니다.
세트 : 세트에 저장된 각 요소는 세트가 중복 요소를 저장하지 않기 때문에 고유해야합니다. 세트에 추가 된 요소는 객체의 고유성을 보장하기 위해 equals () 메소드를 정의해야합니다. 세트는 수집과 정확히 동일한 인터페이스를 가지고 있습니다. SET 인터페이스는 유지 보수 요소의 순서를 보장하지 않습니다.
해시 세트 : 빠른 검색을 위해 설계된 세트. 해시셋에 저장된 객체는 hashcode ()를 정의해야합니다.
Treeset : 저장 순서로 설정된 기본 레이어는 트리 구조입니다. 세트에서 순서 시퀀스를 추출하는 데 사용하십시오.
LinkedHashSet : 쿼리 속도는 해시 세트의 속도를 가지고 있으며 내부적으로 링크 된 목록을 사용하여 요소 순서 (삽입 순서)를 유지합니다. 따라서 반복자를 사용하여 트래버스 세트를 사용하면 요소가 삽입되는 순서로 결과가 표시됩니다.
지도의 기능 방법 :
메소드 풋 (객체 키, 객체 값)은 "값"(원하는 것을 원함)과 "값"과 관련된 "키"(찾기 위해 사용)를 추가합니다. 메소드 get (Object Key)는 주어진 "키"와 관련된 "값"을 반환합니다. ContainsKey () 및 ContainValue ()를 사용하여 "키"또는 "값"이 맵에 포함되어 있는지 테스트 할 수 있습니다.
표준 Java 클래스 라이브러리에는 Hashmap, Treemap, Linkedhashmap, Leakhashmap, Identityhashmap의 여러 가지 맵이 포함되어 있습니다. 모두 동일한 기본 인터페이스 맵을 가지고 있지만 동작, 효율성, 정렬 전략, 객체의 수명주기를 저장하고 "키"와 동등한 것을 결정합니다.
실행 효율은 MAP의 큰 문제입니다. get ()가 무엇을 할 것인지 살펴보면 ArrayList에서 "키"를 검색하는 것이 매우 느린 이유를 이해할 수 있습니다. 그리고 이것은 해시 맵 속도가 상승하는 곳입니다. Hashmap은 해시 코드라는 특수 값을 사용하여 키를 느린 검색을 대체합니다.
"Code"는 객체의 int 값을 나타내는 "비교적 고유"이며 객체의 특정 정보를 변환하여 생성됩니다. hashcode ()는 기본 클래스 객체에 정의 된 메소드이기 때문에 모든 Java 객체는 해시 코드를 생성 할 수 있습니다.
Hashmap은 Quick Query를 위해 객체의 Hashcode ()를 사용합니다. 이 방법은 성능을 크게 향상시킬 수 있습니다.
맵 : "키"를 통해 "값"을 찾을 수 있도록 "키 값 쌍"의 상관 관계를 유지합니다.
해시 맵 : MAP는 해시 테이블 구현을 기반으로합니다. "키 값 쌍"을 삽입하고 쿼리하는 오버 헤드가 고정되어 있습니다. 용량 용량 및 하중 계수로드 계수는 생성자를 통해 컨테이너의 성능을 조정하기 위해 설정할 수 있습니다.
LinkedHashMap : 해시 맵과 유사하지만 반복 할 때 "키-값 쌍"순서는 삽입 순서이거나 최근에 사용 된 순서 (LRU)입니다. 해시 맵보다 약간 느립니다. 내부 순서를 유지하기 위해 링크 된 목록을 사용하기 때문에 반복적으로 액세스 할 때 보내는 것이 더 빠릅니다.
Treemap : 빨간색 및 검은 색 트리 데이터 구조를 기반으로 한 구현. "키"또는 "키 값 쌍"을 보면 정렬됩니다 (순서는 비교 또는 비교기에 의해 결정됩니다). Treemap은 귀하가 얻은 결과가 정렬된다는 사실을 특징으로합니다. Treemap은 하위 트리를 반환 할 수있는 submap () 메소드가있는 유일한 맵입니다.
약한 하쉬 맵 : 약한 키 맵,지도에 사용 된 객체도 해제 할 수 있습니다. 이것은 특별한 문제를 해결하도록 설계되었습니다. 지도 외부의 참조가 "키"를 가리키지 않으면이 "키"를 쓰레기 수집기에 의해 재활용 할 수 있습니다.
equals (neys)를 비교하려면 equals ()를 비교하기 위해 equals ()를 비교하기 위해 everyhashmap : aude ==. 특별한 문제를 해결하도록 특별히 설계되었습니다.