>  기사  >  Java  >  일반적으로 사용되는 컬렉션 구현 클래스 간의 차이점은 무엇입니까?

일반적으로 사용되는 컬렉션 구현 클래스 간의 차이점은 무엇입니까?

零下一度
零下一度원래의
2017-06-25 10:32:355803검색

1. 컬렉션이란 무엇인가요?

컬렉션은 객체 지향 재사용성을 구현한 것입니다. 일반적으로 우리는 몇 가지 요소로 구성된 컬렉션을 총칭합니다. 컬렉션이라고 하며 세트라고도 합니다.

2. 집합 요소의 특성

(1) 결정론적: A가 주어진 집합이고 x가 특정 개체라고 가정하면 A의 요소이거나 A의 요소가 아닙니다. (2) 상호성: 주어진 집합의 요소는 이 집합에 속한 다른 개체(객체)를 참조하므로 동일한 집합에 반복적으로 나타나서는 안 됩니다. (3) 무질서: 요소간의 순서는 일반적으로 고려하지 않으나, 시퀀스 등의 특별한 집합을 표현할 때에는 일반적으로 작은 것부터 큰 것까지 숫자축의 관습적인 순서로 쓴다

collection collection 구현 클래스

ArrayList 구현 방법: Array 구현 버전: 1.2 시기: 1998년 12월 출시 경량(빠른 실행) Thread unsafe(일반적으로 사용됨)
Vector 구현 방법: Array 구현 버전: 1.0 시기: 5월 출시 1995 중량급(느리게 실행) 스레드로부터 안전함
LinkedList 구현 방법: 연결 목록 구현
배열: 연속 공간 빠른 쿼리 속도 첨자에 직접 액세스 천천히 추가 및 삭제하려면 뒤에 추가 및 삭제가 필요함 데이터가 이동됨 뒤로 또는 앞으로
연결 목록: 노드 연결 쿼리 속도가 느림 이전 항목을 통해 다음 항목 찾기 추가 및 삭제 빠른 연결 목록 증가 이전 항목을 새 데이터를 직접 가리킴 다음 항목도 새 데이터를 가리킴

Vector는 쿼리 없는 추가 및 삭제를 수행하는 Stack Stack LIFO(Last In First Out) 클래스를 구현합니다.

3 Java에서 스택을 구현하는 방법

a. c. Stack 클래스

Stack을 사용하여 클래스를 구현하는 것은 어떨까요? Vector는 실수로 Vector에서 상속하지만 스택은 pop 및 push만 가능하고 중간에 스택이 안전하지 않게 됩니다. Stack은 Vector를 상속하므로 Stack에는 존재해서는 안 되는 메서드가 많이 있습니다.

 1 //用java创建一个栈 2 public class AStack { 3 public static void main(String[] args) { 4     Stacks s = new Stacks(); 5     s.push("lin"); 6     s.push("hello"); 7     s.push("hou"); 8     s.push(123); 9     System.out.println(s.pop());10     System.out.println(s.pop());11     System.out.println(s.pop());12     System.out.println(s.pop());13 }14 }15 class Stacks{16     //变继承复用为主核复用17     private LinkedList list = new LinkedList();18     public void push(Object o){19         list.addFirst(o);20     }21     public  Object pop(){22         Object o = list.removeFirst();23         return o;24     }25 }

Map collection

요소: 키 - 값 쌍(키-값 쌍)

특징: 에 해당하는 키 콘텐츠 고유한 반복 불가능 키 값 사용 가능 반복 장애

사용법: 키로 값 찾기

예: 사전 단어 - 설명 웹사이트 사용자 이름 - 비밀번호

주요 방법:

1.put(객체 k, 객체 v): 키-값 쌍 k-v를 맵에 넣습니다. k가 이미 존재하는 경우 새 v가 이전 v

2.get(객체 k)을 대체합니다. Return v

3.remove(Objeck k): k가 위치한 키-값 쌍을 삭제합니다

4.containsKey(Object k): K가 맵에 존재하는지 확인

5.containsValue(Object v): v가 맵에 존재하는지 확인

Map 3가지 유형의 순회

1 값 순회

1   Collection c = map.values();2    Iterator i =  c.iterator();3      while(i.hasNext()){4        System.out.println(i.next());5     }

2. 키 순회

1         Set s = map.keySet();2         Iterator i =  s.iterator();3         while(i.hasNext()){4             Object k = i.next();5             Object v = map.get(k);6             System.out.println(k+"+++"+v);7         }

3. 키 값 순회

Map.Entry 객체는 키와 값을 캡슐화합니다

1      Set set = map.entrySet();2         Iterator i = set.iterator();3         while(i.hasNext()){4             Map.Entry me = (Map.Entry)i.next();5             System.out.println(me.getKey());6             System.out.println(me.getValue());7         }

구현 클래스:

1.HashMap :1.2 ​​​​키 또는 값으로 null을 허용

2.Hashtable :1.0은 키 또는 값으로 null을 허용하지 않습니다
3 속성: Hashtable의 하위 클래스 키와 값은 모두 문자열이며 일반적으로 구성 파일을 읽는 데 사용됩니다

4.TreeMap: SortcdMap(Map의 하위 인터페이스)을 구현하여 키를 자동으로 정렬합니다

-- ------------------------------------------------ -- ------------------------------------------------ -- ----------------------------- 입니다 위에 적힌 내용이 잘못되었다면 전문가의 지적을 환영합니다. 소통을 원하시면 제 이메일 주소 1206835721@qq.com

로 메일을 보내주세요.

위 내용은 일반적으로 사용되는 컬렉션 구현 클래스 간의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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