Java의 Set, List, Map 사용법 및 차이점 소개

6811 단어 SetListMap
Collection 인터페이스: Collection은 JAVA 컬렉션(Set 및 List만 포함)에 적용되는 일반적인 방법을 설명하는 가장 기본적인 컬렉션 인터페이스입니다.Set과 List는 Conllection, Map을 상속받았습니다.
Collection 인터페이스 방법:
boolean add(Object o): 컬렉션에 객체 참조 추가하기
voidclear (): 집합의 모든 대상을 삭제합니다. 이 대상의 인용을 더 이상 가지고 있지 않습니다.
boolean isEmpty(): 컬렉션이 비어 있는지 여부를 판단합니다.
boolean contains(Object o): 컬렉션에 특정 객체의 참조 여부를 판단합니다.
Iterartor iterator (): 집합의 요소를 훑어볼 수 있는 Iterator 대상을 되돌려줍니다.
boolean remove(Object o): 컬렉션에서 객체 참조를 삭제합니다.
int size (): 집합에 있는 요소의 수를 되돌려줍니다.
Object[] toArray(): 컬렉션의 모든 요소를 포함하는 배열을 반환합니다.
정보: Iterator () 와 toArray () 방법은 집합된 모든 요소에 사용되며, 전자는 Iterator 대상을 되돌려주고, 후자는 집합된 모든 요소를 포함하는 그룹을 되돌려줍니다.
Iterator 인터페이스는 다음과 같은 방법을 설명합니다.
hasNext (): 집합에서 요소가 반복 중인지 판단하고, 없으면 true로 돌아갑니다.
next (): 다음 요소로 돌아가기
remove (): 집합에서next () 방법으로 되돌아온 요소를 삭제합니다.
Set(컬렉션): Set은 가장 간단한 컬렉션입니다.집합 중의 대상은 특정한 방식으로 정렬되지 않고 중복 대상이 없다.Set 인터페이스는 주로 두 가지 구현 클래스를 구현합니다.
HashSet: HashSet 클래스는 해시 알고리즘에 따라 집합 중의 대상을 액세스하고 액세스 속도가 비교적 빠르다
TreeSet: TreeSet 클래스는 SortedSet 인터페이스를 실현하여 집합 중의 대상을 정렬할 수 있습니다.
Set 사용법: 객체의 참조를 저장하고 중복 객체가 없습니다.

Set set=new HashSet();
String s1=new String("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(newStr.equals(oldStr)){
isExists=true;
}
}
List(목록): List의 특징은 요소가 선형으로 저장되고 집합에 중복 대상을 저장할 수 있다는 것이다.
List 인터페이스의 주요 구현 클래스는 다음과 같습니다.
ArrayList(): 길이가 변경될 수 있는 배열을 나타냅니다.요소에 랜덤으로 액세스할 수 있으며 ArrayList()에 요소를 삽입하고 삭제하는 속도가 느립니다.
LinkedList(): 구현에 체인 테이블 데이터 구조를 사용합니다.삽입 및 삭제 속도가 빠르고 액세스 속도가 느립니다.
List의 랜덤 액세스는 특정 위치에 있는 요소만 랜덤으로 검색하는 것입니다.목록의 get(int index) 방법은 집합에서 매개 변수 index가 지정한 색인 위치의 대상을 되돌려줍니다. 아래 표식은 "0"에서 시작합니다.컬렉션의 모든 객체를 읽어들이는 가장 기본적인 두 가지 방법:
1: for 순환 및 get () 메서드:

for(int i=0; i<list.size();i++){
System.out.println(list.get(i));
}
2: 교체기 사용(Iterator):

Iterator it=list.iterator();
while(it.hashNext){
System.out.println(it.next);
}
맵(맵): 맵은 키 대상과 값 대상을 매핑하는 집합으로, 모든 요소는 키 대상과 값 대상을 포함한다.
맵은 Collection 인터페이스가 맵 집합에서 요소를 검색할 때 키 대상을 주면 해당하는 값 대상을 되돌려줍니다.
맵의 일반적인 방법:
1 추가, 삭제 작업:
Object put(Object key, Object value): 컬렉션에 요소 추가하기
Object remove(Object key): KEY와 관련된 요소 삭제
void putAll(Map t): 특정 이미지의 모든 요소를 이미지에 추가
voidclear (): 이미지에서 모든 맵 삭제
2 쿼리 작업:
Object get(Object key): 키워드 키와 관련된 값을 가져옵니다.맵 집합의 키 대상은 중복을 허용하지 않습니다. 즉, 임의의 두 키 대상이 equals () 방법으로 비교한 결과는false입니다.그러나 임의의 여러 키를 같은 값 대상에 단독으로 비출 수 있다.
Conllections: 컬렉션 유틸리티 클래스.Conllections는 JAVA 컬렉션에 유용한 정적 방법을 제공합니다.
요약:
JAVA 집합의 기본적인 용법은 모두 귀납되었다. 위에 있는 것들은 평소에 가장 자주 사용하는 JAVA 집합이다. 구체적인 것은 JDK 도움말 문서를 참고해야 한다. 허허 맵의 응용에 관한 것도 많고 구체적으로는 이것이다. Conllections는 List/Map의 실용적인 방법을 많이 제공하여 평상시 개발에 매우 유용하다.
boolean containsKey(Object key): 이미지에 키워드 키가 있는지 판단합니다.
boolean containsValue(Object value): 이미지에 값 value 존재 여부 판단
int size (): 현재 이미지에 매핑된 수량을 되돌려줍니다.
boolean isEmpty(): 이미지에 매핑이 있는지 여부를 판단합니다.
List는 정렬하거나 편집하지 않고 객체가 들어오는 순서대로 객체를 저장합니다.Set은 모든 대상에게 한 번만 받아들여지고 자신의 내부 정렬 방법을 사용합니다. (일반적으로 어떤 요소가 Set에 속하는지 여부에만 관심을 가지고, 순서에 관심을 가지지 않습니다. 그렇지 않으면 List를 사용해야 합니다.
맵 역시 모든 요소에 한 부를 저장하지만, 이것은'키'를 기반으로 하고, 맵에도 내장된 정렬이 있기 때문에 요소가 추가되는 순서에 관심이 없습니다.요소를 추가하는 순서가 중요하다면 LinkedHashSet 또는 LinkedHashMap을 사용해야 합니다.
List 기능 방법:
실제로 두 가지가 있다. 하나는 기본적인 Array List이다. 그 장점은 랜덤 액세스 요소에 있고 다른 하나는 더욱 강력한 Linked List이다. 이것은 빠른 랜덤 액세스를 위해 설계된 것이 아니라 더욱 통용되는 방법을 가지고 있다.
List: 순서는 List의 가장 중요한 특징입니다. 유지 보수 요소의 특정한 순서를 보장합니다.List는 Collection에 여러 가지 방법을 추가하여 List 중간에 요소를 삽입하고 제거할 수 있습니다. 이것은 LinkedList에서만 사용할 수 있습니다.하나의 List는 ListIterator를 생성할 수 있으며, 두 방향으로 List를 훑어보거나 List 중간에서 요소를 삽입하고 제거할 수 있습니다.
ArrayList: 배열로 이루어진 List.요소에 대한 빠른 랜덤 액세스를 허용하지만 List 중간에 요소를 삽입하고 제거하는 속도가 느립니다.ListIterator는 요소를 삽입하고 제거하는 것이 아니라 Array List를 뒤로 훑어보는 데만 사용해야 합니다.그것은 링크드 리스트보다 비용이 훨씬 많기 때문이다.
LinkedList: 순서 접근을 최적화하여 List 중간에 삽입하고 삭제하는 데 큰 비용이 들지 않습니다.랜덤 액세스는 상대적으로 느립니다.대신 ArrayList를 사용합니다.다음 방법도 있습니다. addFirst (),addLast (),getFirst (),removeFirst (),removeLast (), 이 방법들 (인터페이스나 기본 클래스에 정의된 적이 없음) 은 LinkedList를 창고, 대기열, 양방향 대기열로 사용할 수 있도록 합니다.
Set 기능 방법:
Set은 Collection과 완전히 같은 인터페이스를 가지고 있기 때문에 별도의 기능이 없습니다. 앞에 두 개의 다른 List가 있는 것과 같지 않습니다.사실 Set은 Collection입니다. 행동이 다를 뿐입니다.(이것은 계승과 다태사상의 전형적인 응용: 서로 다른 행위를 표현하는 것이다.)Set 는 중복된 요소를 저장하지 않습니다(요소가 동일하다고 판단하는 방법은 비교적 책임집니다.)
Set: Set에 저장된 모든 요소는 고유해야 합니다. 왜냐하면 Set은 중복 요소를 저장하지 않기 때문입니다.Set 요소를 추가하려면 객체의 고유성을 보장하기 위해 equals () 방법을 정의해야 합니다.Set은 Collection과 완전히 동일한 인터페이스를 제공합니다.Set 인터페이스는 유지 보수 요소의 순서를 보장하지 않습니다.
HashSet: 빠른 검색을 위한 Set입니다.HashSet에 저장된 객체는 hashCode()를 정의해야 합니다.
TreeSet: 순서를 저장하는 Set, 아래쪽은 트리 구조입니다.그것을 사용하면 Set에서 질서정연한 시퀀스를 추출할 수 있습니다.
LinkedHashSet: HashSet의 조회 속도가 있고 내부적으로 체인 테이블을 사용하여 요소의 순서(삽입된 순서)를 유지합니다.따라서 교체기를 사용하여 Set를 반복할 때 결과는 요소가 삽입된 순서에 따라 표시됩니다.
맵의 기능 방법:
메서드put(Object key, Object value)는 값과 값과 연결된 키(key)를 추가합니다.메서드 get(Object key)은 지정된 키와 연관된 값을 반환합니다.containsKey () 와containsValue () 를 사용하여 맵에 키 또는 값이 포함되어 있는지 테스트할 수 있습니다.
표준 자바 라이브러리에는 몇 가지 다른 맵이 포함되어 있습니다. HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap입니다.그것들은 모두 같은 기본 인터페이스 맵을 가지고 있지만 행위, 효율, 정렬 정책, 저장 대상의 생명주기와'키'등가를 판정하는 정책 등은 각각 다르다.
실행 효율은 맵의 큰 문제입니다.get () 가 어떤 일을 하는지 보면 왜 Array List에서'키'를 검색하는 것이 상당히 느린지 알 수 있습니다.이것이 바로 HashMap이 속도를 높이는 곳이다.HashMap은 키에 대한 느린 검색을 대체하기 위해'해시 코드'라고 불리는 특수한 값을 사용합니다.
'산열 코드'는'상대적으로 유일'은 대상을 대표하는 int 값으로 이 대상의 일부 정보를 변환함으로써 생성된다.모든 Java 객체는 해시 코드()가 기본 클래스 Object에 정의된 방법이기 때문에 해시 코드를 생성할 수 있습니다.
HashMap은 객체의 HashCode()를 사용하여 빠른 조회를 하는 것입니다.이 방법은 성능을 현저하게 향상시킬 수 있다.
맵: 키 값 쌍의 연관성을 유지하여 키를 통해 값을 찾을 수 있습니다.
HashMap:맵은 분산 목록을 기반으로 구현됩니다.키 값 쌍을 삽입하고 조회하는 비용은 고정되어 있습니다.구조기를 통해 용량capacity와 부하인자loadfactor를 설정하여 용기의 성능을 조정할 수 있습니다.
LinkedHashMap: HashMap과 유사하지만 반복해서 훑어볼 때'키 값 쌍'을 얻는 순서는 삽입 순서이거나 최근에 가장 적게 사용한 순서입니다.HashMap보다 조금 느리다.체인 테이블을 사용하여 내부 순서를 유지하기 때문에 교체 접근할 때 더 빨리 보냅니다.
TreeMap: 빨간색과 검은색 트리 데이터 구조를 바탕으로 실현됩니다.키 또는 키 값 쌍을 볼 때 정렬됩니다(순서는 Comparabel 또는 Comparator에 의해 결정됨).TreeMap의 특징은 당신이 얻은 결과는 정렬을 거쳤다는 것이다.TreeMap은 서브맵() 방법이 있는 유일한 맵으로 하위 트리로 돌아갈 수 있습니다.
WeakHashMap: 약한 키(weak key) 맵, 맵에서 사용하는 대상도 방출할 수 있습니다. 이것은 특수한 문제를 해결하기 위해 설계된 것입니다.맵 이외의 인용이 "키"를 가리키지 않으면 이 "키"는 쓰레기 수집기에서 회수할 수 있습니다.
IdentifyHashMap: equals() 대신 "키"를 비교하는 hashmap을 사용합니다.특수한 문제를 해결하기 위해 설계하다.

좋은 웹페이지 즐겨찾기