java 집합 설명

5317 단어

java 집합 설명


본문은 www.javady.com 사이트 오리지널 총 인터페이스: Iterable 이 인터페이스는 대상이 "foreach"문장의 목표가 되도록 허용합니다.
Collection 계층 구조의 루트 인터페이스입니다.Collection은 객체 세트를 나타냅니다.
1. List: collection 인터페이스의 질서정연한 집합을 실현하면 중복을 허용할 수 있다
ArrayList                           
초기 크기
10
확장 인자
(크기*3)/2 + 1
확장의 예
10이 넘으면 16, 25, 38...
데이터 처리
요소 중 하나를 삭제하면 뒤에 있는 요소가 자동으로 앞으로 밀어냄
스레드가 안전한지 여부
안전하지 않다
우세하다
ArrayList의 장점은 읽기 및 테이블 끝 삽입
다중 스레드 사용
List list = Collections.synchronizedList(new ArrayList(…))
      
LinkedList
설명
List 인터페이스에 대한 링크 목록이 표시됩니다.
초기 크기
1
데이터 처리
요소 중 하나를 삭제하면 뒤에 있는 요소는 자동으로 앞으로 밀려납니다. 링크드 리스트의 링크 관계는 Entity에서 이루어집니다. 모든 Entity에는 이전 Entity가 인용하고 다음 Entity는 자체 요소 값인 Entry (E 요소, Entry < E > next, Entry < E > previous) 링크드 리스트의 시작과 끝에 get, remove, insert 요소에 통일된 명칭 방법을 제공합니다.이것은Queue 인터페이스를 실현하여dd,poll 등에 선진적인 선출 대기열 조작을 제공합니다
우세하다
LinkedList의 장점은 테이블에 삽입 및 삭제
스레드가 안전한지 여부
안전하지 않습니다. 다음과 같이 안전 처리를 할 수 있습니다. List list = Collections.synchronizedList(new LinkedList(...));
 
Vector
설명
Vector 클래스의 확장 가능한 객체 배열
초기 크기
10
확장 인자
1, 기본 용량 2배 증가
확장의 예
10이 넘으면 20, 40, 그리고 80...
데이터 처리
요소 중 하나를 삭제하면 뒤에 있는 요소가 자동으로 앞으로 밀어냄
동기화 여부
Vector가 동기화됨
사용법
일반적으로 다중 스레드에서 일반적인 데이터 저장소에 ArrayList를 직접 사용
 
Stack
유형 해석
LIFO(후진선출)의 객체 스택을 나타냅니다.이것은 다섯 가지 조작을 통해 클래스 Vector를 확장하여 벡터를 창고로 볼 수 있도록 합니다.그것은 일반적인push와 pop 조작을 제공했다
몇 가지 방법
empty () 는 창고가 비어 있는지 테스트합니다.E peek()는 스택 상단 객체를 제거하지 않고 봅니다.E pop()은 스택 상단 객체를 제거하고 이 함수의 값으로 반환합니다.Epush (Eitem) 항목을 창고 꼭대기에 눌러라.int search(Object o)는 1을 기준으로 객체가 스택에 있는 위치를 반환합니다.
Arrays                           
설명
배열을 조작하기 위한 보조 클래스 Array 고정 개수 효율이 가장 높음
데이터 처리
Arrays에는 static 함수 그룹이 있습니다. equals (): 두 Array가 같은지 비교합니다.array는 같은 원소의 개수를 가지고 있으며 모든 대응하는 원소는 둘이 같다.fill(): array에 값을 입력합니다.sort ():array를 정렬하는 데 사용합니다.binarySearch(): 정렬된 array에서 요소를 찾습니다.System.arraycopy ():array 복제
우세하다
이것은 바로 수조를 처리하는 데 쓰이는 것으로 효율이 매우 높다. 만약에 이전에 Arrays에 대해 이렇게 중시하지 않았다면 J2SE 5.0 이후에 그것을 몇 번 더 배려할 수 있다.만약 수조 조작에 관한 수요가 있으면java를 먼저 찾아볼 수 있습니다.util.Arrays의 API 파일 설명, 사용 가능한 방법이 있는지 확인
 
2. Set: 중복 요소를 포함하지 않는collection.
HashSet
설명
내부적으로 HashMap을 사용하여 데이터 저장
초기 크기
16
확장 인자
데이터가 현재 크기*0.75를 초과하여 2배 증가
확장의 예
현재 용량 16
우세하다
중복된 요소는 허용되지 않습니다.
스레드가 안전한지 여부
보안이 설정되지 않았습니다. Set s = Collections.synchronizedSet(new HashSet(...))
 
LinkedHashSet
설명
내부적으로 HashMap을 사용하여 데이터 저장
초기 크기
16
확장 인자
데이터가 현재 크기*0.75를 초과하여 2배 증가
확장의 예
현재 용량 16
우세하다
중복된 요소가 허용되지 않으며, 조회가 충분하고 질서정연하다
스레드가 안전한지 여부
보안이 설정되지 않았습니다. Set s = Collections.synchronizedSet(new HashSet(...))
 
3. Map: 반복 요소가 없는 무질서한 컬렉션 키 값 쌍.
 
HashMap
설명
내부에 Entity를 사용하여 데이터를 저장합니다. 키는 공백put 방법으로 사용할 수 있습니다. 키가 비어 있으면 키를 공백으로 바꾸고, 그렇지 않으면 O 위치에 삽입합니다.for(Entry e = table[0]; e! = null; e = e.next) {//null key는 table[0] 위에 if(e.key===null) {V oldValue = e.value; e.value = value; e.recordAccess(this), return oldValue;}키가 비어 있지 않으면 키 대상의hashcode를 계산한 다음 함수hash()를 호출하여 한 번 계산하고 마지막으로 결과와 현재hash 크기를 계산하여 이 값을 저장할 위치를 찾습니다.만약 이 위치에 값이 있으면 현재 값(entity)을 이 값의 맨 앞에 직접 연결합니다.Entry e = table[bucketIndex];//이 곳에서 현재 위치의 e//table [bucketIndex] = new Entry (hash,key,value,e) 가져오기;//여기에 삽입할 entity의next 속성을 e로 가리키고 전체 entity를hashMap의 index 위치에 넣습니다. 값이 없으면 바로 넣습니다. 그룹의 위치가 커질 때마다 안의 모든 대상의 위치를 다시 계산해야 합니다.
초기 크기
16
확장 인자
데이터가 현재 크기*0.75를 초과하여 2배 증가
확장의 예
현재 용량 16 13 개 삽입 시 용량 증가 (16*0.75=12) 16 마지막 용량 32
우세하다
조회가 충분하다
스레드가 안전한지 여부
스레드가 안전하지 않으면 다음과 같이 Set s = Collections를 안전하게 처리할 수 있습니다.synchronizedSet(new HashSet(...))
 
 
Hashtable
초기 크기
11
확장 인자
크기 = 크기 * 2 + 1
확장의 예
11, 그리고 23, 그리고 47...
동기화 여부
hashtable은 동기화됩니다.
우세하다
조회가 충분하다
설명
키는 빈 데이터의put과 get과hashMap이 기본적으로 일치하는 것을 허용하지 않습니다. 동기화할 필요가 없는 모든 방법은synchronized가 있습니다.
 
 
LinkedHashMap
초기 크기
16
확장 인자
데이터가 현재 크기*0.75를 초과하여 2배 증가
확장의 예
현재 용량 16 13 개 삽입 시 용량 증가 (16*0.75=12) 16 마지막 용량 32
동기화 여부
비동기 스레드가 안전하지 않은 다중 스레드는 다음과 같이 사용할 수 있다
Map m = Collections.synchronizedMap(new LinkedHashMap(...))
우세하다
조회가 충분한 빠른 질서
설명
체인 테이블 형식으로 데이터를 저장하는 데 사용되는hash 알고리즘은 데이터를 유지하지만 삽입 순서 조회 대상을 유지할 때 속도가 충분히 빠르다
 
TreeMap 
초기 크기
0
확장 인자
1
확장의 예
키 값을 삽입할 때마다 내부에entity를 만들어서 크기 + 1을 저장합니다
동기화 여부
비동기 스레드가 안전하지 않은 다중 스레드는 다음과 같이 사용할 수 있다
Map m = Collections.synchronizedMap(new TreeMap(...));
우세하다
내부 요소의 정렬 상태를 유지할 수 있습니다
설명
TreeMap은 0으로 초기화되어 키 값이 맞을 때마다 내부에entity를 만들어서 내부의 실현과 유지보수를 저장하는 것은 붉은색과 검은색 트리입니다. 옮길 때 앞의 순서대로 옮길 수 있지만 get 방법을 조회할 때 옮길 필요가 있습니다. 속도는hash 알고리즘을 직접 사용하는 것보다 빠르지 않습니다.
 
 
Properties
초기 크기
11
확장 인자
크기 = 크기 * 2 + 1
확장의 예
11, 그리고 23, 그리고 47...
동기화 여부
동기화됩니다.
우세하다
조회가 빠르면 흐름에 저장하거나 흐름에서 데이터를 불러올 수 있습니다
설명
HashTable는 지속적인 속성 집합을 나타냅니다.Properties는 스트림에 데이터를 저장하거나 스트림에서 로드할 수 있습니다. 
 

좋은 웹페이지 즐겨찾기