>Java >java지도 시간 >Java 컬렉션의 차이점은 무엇입니까?

Java 컬렉션의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2019-11-18 17:49:074909검색

Java 컬렉션의 차이점은 무엇입니까?

자바에서 세트의 차이점은 무엇인가요?

Java에서 컬렉션은 주로 List, Set, Map의 세 가지 유형으로 구분됩니다. List와 Set은 Collection에서 상속되지만 Map은 그렇지 않습니다.

List와 Set의 차이점: List의 요소에는 저장 순서가 있어 중복된 요소를 저장할 수 있습니다. 검색 효율성은 높지만, Set에는 저장 순서가 없고, 삭제 효율성이 낮습니다. 나중에 중복된 요소를 저장할 수 없습니다. 요소는 이전에 반복된 요소를 대체하므로 검색 효율성이 낮고 삽입 및 삭제 효율성이 높습니다. (Set 저장 위치는 HashCode 코드에 따라 결정되므로 저장하는 객체에는 equals() 메서드가 있어야 하며, Set 순회는 첨자가 없으므로 반복만 사용할 수 있습니다.)

#🎜 🎜# 1. 가장 일반적으로 사용되는 컬렉션: ArrayList

특징: ArrayList 컬렉션의 요소 저장 위치는 연속적이므로 쿼리하는 것이 더 빠르지만 쿼리하는 것이 더 번거롭습니다. 삽입 및 삭제 작업을 수행하면 한 점이 다른 요소의 위치를 ​​변경하게 됩니다.

참고: 목록에는 개체 자체가 아닌 개체에 대한 참조가 저장됩니다. 이에 대해 명확하지 않으면 여기에 함정이 있을 것입니다. 예:

어떤 사람들은 최적화 코드를 저장하고 가상 머신 메모리를 절약하기 위해 다음과 같은 코드를 작성합니다.

List<List<String>> list=new ArrayList<>();
List<String> list2=new ArrayList<>();
for(int i=0;i<10;i++){
    list2.add(""+i);    
    list.add(list2);
    list2.clear();
}
# 🎜🎜#이렇게 작성할 수도 있지만 객체는 재사용되지만 목록에는 객체에 대한 참조가 저장됩니다. list2.clear()가 호출되면 목록의 list2도 지워지므로 최종 결과를 얻을 수 있습니다. 단지 빈 컬렉션의 묶음일 뿐입니다.

2 가장 일반적으로 사용되는 컬렉션의 반대 컬렉션: LinkedList

LinkedList와 ArrayList는 상호 보완적이므로 ArrayList의 장점은 다음과 같습니다. LinkedList의 단점, ArrayList의 단점은 LinkedList의 장점입니다.

Features: LinkedList의 요소 위치는 임의적이므로 삽입 및 삭제 작업이 더 효율적이고 쿼리 효율성이 낮습니다.

3. 일반 집합의 반대 집합: Vector

왜 일반 집합의 반대 집합이라고 하나요? 오래된 동적 배열이기 때문에 많은 메소드가 동기화되어 수정되므로 스레드로부터 안전하지만 일반 컬렉션은 스레드로부터 안전하지 않습니다.

특징: 여러 스레드에 의한 동시 접근은 불확실한 결과를 낳지는 않지만, 스레드 안전성을 고려한다면 효율성이 상대적으로 낮을 것입니다.

4. Set에서 가장 일반적으로 사용되는 컬렉션: HashSet

Set 컬렉션을 사용할 때 거의 항상 HashSet이 구현됩니다. 해시 테이블을 사용하면 세트의 요소는 순서가 지정되지 않으며 null 값을 가질 수 있지만 중복된 요소는 가질 수 없습니다.

기능: 동일한 요소는 동일한 hashCode를 갖기 때문에 중복된 요소가 있을 수 없습니다.

5 세트에서 두 번째로 가장 일반적으로 사용되는 세트: TreeSet#🎜 🎜 #

TreeSet은 이진 트리 구조를 사용하여 구현된 집합입니다.

특징: 집합의 요소가 순서대로 되어 있으며 null이 허용되지 않으며 중복된 요소를 배치할 수 없습니다. .

6. 두 번째로 가장 일반적으로 사용되는 컬렉션: HashMap

우리는 종종 키-값 쌍 저장이 필요한 시나리오에 직면합니다. 최선의 선택 저장된 키-값 쌍의 가장 큰 컬렉션입니다.

Features: HashMap은 빈 키 값을 허용하고 스레드로부터 안전하지 않으므로 요소 삽입, 삭제 및 위치 지정이 더 빨라집니다.

7. 덜 일반적으로 사용되는 일부 맵 컬렉션: TreeMap, HashTable

TreeMap은 레드-블랙 트리를 기반으로 구현되며 자연 환경에 적합합니다. 발사 순서는 키의 순차적 순회에 의해 결정됩니다.

HashTable은 HashCode를 기반으로 구현되었지만 스레드로부터 안전하기 때문에 HashMap에 비해 효율이 낮고 null 값을 허용하지 않습니다.

추천 튜토리얼:

JavaTutorial

위 내용은 Java 컬렉션의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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