일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 쿠팡메크로
- 서울대입구 맛집
- 샤로수길 데이트
- 닥스훈트
- 강아지 더위
- 부산 맛집
- 강아지 열사병
- 강아지종류
- 반려견 사료등급
- 반려견
- 동인천 맛집
- 티켓팅매크로
- 강아지 유기농 사료
- 홀리스틱 유기농
- 강아지 종류
- 반려견 유기농
- 반려견 유기농 사료
- 신포동 맛집
- 반려견 더위
- 강아지
- 샤로수길 맛집
- 국비지원 예습
- 자동화봇
- 반려견 홀리스틱
- 티켓팅메크로
- 강아지 유기농
- 쿠팡매크로
- 반려견 종류
- 반려견 열사병
- 강아지 홀리스틱
- Today
- Total
심심한잉여의 잡동사니
[Java] 자바 컬렉션(Collection) 구조 정리 본문
Collection Interface
Iterator 인터페이스를 상속한 Collection은 가장 기본이 되는 인터페이스로 add(), size(), iterator() 메소드를 가지고 있다.
Collection 인터페이스 List와 Set 인터페이스의 많은 공통된 부분을 Collection 인터페이스에서 정의하고
두 인터페이스는 그것을 상속받는다.
그 메소드들은
boolean add(E e) : 인자로 들어온 요소를 추가
void clear() : 모든 요소를 제거
boolean contains(Object obj) : 해당 객체를 포함하고 있는지 확인
boolean equals(Object obj) : 같은 객체인지 확인
boolean isEmpty() : 비어있는지 확인
Iterator<E> iterator() : 해당 컬렉션의 Iterator로 반환
boolean remove(Object o) : 인자로 전달된 객체를 제거
int size() : 해당 컬렉션의 요소의 총 개수를 반환
Object[] toArray() : 모든 요소를 가지고 Object 타입의 배열로 반환
Collections
Collection인터페이스와 달리 Java 1.2이상부터 Collections라는 static클래스가 존재한다.
Collections는 컬렉션 프레임워크에 속하는 클래스를 지원해주는 다양한 메소드가 들어있다.ㅈ
Collections 의 메소드
Collections.sort(List list) : 인자로 받은 리스트를 정렬
Collections.sort(List list, reversOrder()) : 역순으로 정렬
max(List list), min(List list) : 최대값, 최소값
shuffle(List list) : 인자로 받은 리스트를 랜덤으로 섞음
binarySearch(List list, Key) : 오름차순으로 정렬된 리스트에서 이진검색을 통해 위치를 반환, 실패시 -1반환
disjoint(List list1, List list2) : 두 리스트의 값이 완전히 다른지 검사, 하나라도 같을 시 false 반환
Collection의 대략적인 특징
List
인덱스(index)라는 식별자로 순서를 가지며, 데이터의 중복을 허용하는 자료구조
1. ArrayList
- 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능이 LinkedList 보다 좋은 성능을 가지고있다.
- 배열과 달리 초기크기를 지정하지 않아도 되므로, 삽입 삭제가 자유롭다.
2. LinkedList
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 ArrayList보다 좋은 성능을 가지고 있다.
- 조회에 대해서는 인덱스가 없어 ArrayList에 비해 느리다
- 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 주로 쓰인다.
3. Vector
- 전체적으로 ArrayList와 비슷하나 자동으로 동기화가 일어나기 때문에 멀티쓰레드 환경에서 필요에 의해 쓰인다.
Set
순서가 없고 데이터 유일성을 가지는 자료구조
1. HashSet
- 가장 빠른 속도를 가지고 있다.
- 순서가 없다.
2. TreeSet
- 정렬 방법을 지정할 수 있다.
Map
키(Key)와 값(Value)로 이루어진 자료구조
키(Key)는 유일성을 가지고 값(Value)은 중복을 허용한다.
1. HashMap
- 중복과 순서가 허용되지 않으며 null값이 올 수 있다.
2. HashTable
- 동기화를 지원하여 HashMap보다는 느리지만 멀티쓰레드 환경에서 동기화가 필요한 경우 사용된다.
- null 사용 불가
3. TreeMap
- 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름
'코딩일기 > Java' 카테고리의 다른 글
[JAVA/크롤링]Jsoup을 이용한 Java 크롤링 (0) | 2022.11.15 |
---|---|
[JAVA] 스트림(Stream) 정리 (0) | 2022.09.20 |
[JAVA] 어노테이션(Anotation) (0) | 2022.04.12 |
[Java] 리플렉션 Class 클래스 (0) | 2022.04.11 |
[JAVA]POJO, DTO, DAO, VO (0) | 2022.04.07 |