자바에서 세트의 차이점은 무엇인가요?
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에서 가장 일반적으로 사용되는 컬렉션: HashSetSet 컬렉션을 사용할 때 거의 항상 HashSet이 구현됩니다. 해시 테이블을 사용하면 세트의 요소는 순서가 지정되지 않으며 null 값을 가질 수 있지만 중복된 요소는 가질 수 없습니다.
기능: 동일한 요소는 동일한 hashCode를 갖기 때문에 중복된 요소가 있을 수 없습니다.
5 세트에서 두 번째로 가장 일반적으로 사용되는 세트: TreeSet#🎜 🎜 #TreeSet은 이진 트리 구조를 사용하여 구현된 집합입니다.
특징: 집합의 요소가 순서대로 되어 있으며 null이 허용되지 않으며 중복된 요소를 배치할 수 없습니다. .6. 두 번째로 가장 일반적으로 사용되는 컬렉션: HashMap
우리는 종종 키-값 쌍 저장이 필요한 시나리오에 직면합니다. 최선의 선택 저장된 키-값 쌍의 가장 큰 컬렉션입니다.
Features: HashMap은 빈 키 값을 허용하고 스레드로부터 안전하지 않으므로 요소 삽입, 삭제 및 위치 지정이 더 빨라집니다.7. 덜 일반적으로 사용되는 일부 맵 컬렉션: TreeMap, HashTable
TreeMap은 레드-블랙 트리를 기반으로 구현되며 자연 환경에 적합합니다. 발사 순서는 키의 순차적 순회에 의해 결정됩니다.
HashTable은 HashCode를 기반으로 구현되었지만 스레드로부터 안전하기 때문에 HashMap에 비해 효율이 낮고 null 값을 허용하지 않습니다. 추천 튜토리얼:JavaTutorial
위 내용은 Java 컬렉션의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!