자바) Collection

ArrayList

List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용하고
순차적으로 추가/삭제 하는 경우에는 ArrayList가 LinkedList보다 빠르다
컬렉션 프레임워크에서 가장 많이 사용되는 컬렉션이다.🔥

 

ArrayList는 배열을 이용한 자료구조의 형태여서 데이터를 읽어오고 저장하는 데는 좋지만

데이터가 저장공간(Size가 Capacity)보다 커져서 저장공간(Capacity)를 넘게되어 용량을 변경해야 할 때는

새로운 배열을 생성 한 후 기존의 배열로 부터 데이터를 복사해야 하기 때문에 효율이 떨어지기 때문에

처음 인스턴스를 생성 할 때 저장 개수를 잘 고려해 충분한 용량의 인스턴스를 생성하는게 좋다.

Size가 Capacity보다 커져서 Capacity가 늘어 나는 과정의 효율이 떨어짐

생성자

List<E> arrayList = new ArrayList<E>();

메소드

메서드  설명 예제
Object get(in index) 지정된 위치(index)에 저장된 객체를 반환한다.
List subList(int fromIndex, int toIndex) fromIndex부터 toIndex사이에 저장된 객체를 반환한다.
boolean add(Object obj) ArrayList의 마지막에 객체를 추가한다. 추가에 성공하면 true를 반환
void add(int index, Object element) 지정된 위치(index)에 객체를 저장한다.
자리에 있던 기존의 데이터는 뒤로 밀려나기만 할 뿐 삭제되지 않는다.
ex) add(2, Object) → 기존, 기존, 추가, 기존, 기존
void addAll(Collection c) 주어진 컬렉션의 모든 객체를 저장한다.(마지막 index의 뒤로 붙임)
ex) addAll(Collection) → 기존, 기존, 기존, 기존, 추가, 추가, ...
void addAll(int index, Collection c) 지정한 위치부터 주어진 컬렉션의 데이터를 저장한다.
자리에 있던 기존의 데이터는 뒤로 밀려나기만 할 뿐 삭제되지 않는다.
ex) addAll(2, Collection) → 기존, 기존, 추가, 추가, ... , 기존, 기존
Object set(int index, Object obj) 주어진 객체(obj)를 지정한 위치(index)에 저장한다.자리에 있던 기존의 데이터는 삭제되고 새로운 데이터가 대체되어 들어간다.ex) set(2, Object) → 기존, 기존, 대체, 기존, 기존
Object clone() ArrayList를 복제한다.
Object remove(int index) 지정된 위치(index)에 있는 객체를 제거한다.
boolean remove(Object obj) 지정된 객체를 제거한다.(성공하면 true)
boolean removeAll(Collection c) 지정한 컬렉션에 저장된 것과 동일한 객체들을 ArrayList에서 제거한다.
boolean retainAll(Collection c) ArrayList에 저장된 객체 중에서 주어진 컬렉션과 공통된 것들만 남기고 제거한다.
void clear() ArrayList를 완전히 비운다.
int size() ArrayList에 저장된 객체의 개수를 반환한다.
boolean isEmpty() ArrayList가 비어있는지 확인한다.
void sort(Comparator c) 지정된 정렬기준(c)으로 ArrayList를 정렬한다.
boolean contains(Object obj) 지정된 객체(obj)가 ArrayList에 포함되어 있는지 확인한다.
int indexOf(Object obj) 지정된 객체(obj)가 저장된 위치를 찾아 반환한다.
int lastIndexOf(Object obj) 지정된 객체(obj)가 저장된 위치를 뒤에서 부터 역방향으로 찾아 반환한다.
Iterator iterator() ArrayList의 Iterator객체를 반환한다.
ListIterator listIterator() ArrayList의 ListIterator를 반환한다.
ListIterator listIterator(int index) ArrayList의 지정된 위치부터 시작하는 ListIterator를 반환한다.
void ensureCapacity(int minCapacity) ArrayList의 용량이 최소한 minCapacity가 되도록 한다.
void trimToSize() 용량의 크기에 맞게 줄인다.(빈 공간을 없앤다.)
Object[] toArray() ArrayList에 저장된 모든 객체들을 객체배열로 반환한다.
Object[] toArray(Obejct[] objArr) ArrayList에 저장된 모든 객체들을 객체배열 objArr에 담아 반환한다.

 

 

 

LinkedList 

List를 구현한 컬렉션 이기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다
중간 데이터를 추가/삭제 하는 경우에는 LinkedList가 ArrayList보다 빠르다🌠

생성자

//제너릭 타입 객체만 사용 가능
LinkedList<E> linkedList = new LinkedList<E>();

//Object 타입으로 선언됨
LinkedList linkedList = new LinkedList();

메소드

메서드  설명 예제
Object get(in index) 지정된 위치(index)에 저장된 객체를 반환한다.
List subList(int fromIndex, int toIndex) fromIndex부터 toIndex사이에 저장된 객체를 List로 반환한다.
boolean add(Object obj) LinkedList의 마지막에 객체를 추가한다. 추가에 성공하면 true를 반환
void add(int index, Object element) 지정된 위치(index)에 객체를 저장한다.
자리에 있던 기존의 데이터는 뒤로 밀려나기만 할 뿐 삭제되지 않는다.
ex) add(2, Object) → 기존, 기존, 추가, 기존, 기존
void addAll(Collection c) 주어진 컬렉션의 모든 객체를 저장한다.(마지막 index의 뒤로 붙임)
ex) addAll(Collection) → 기존, 기존, 기존, 기존, 추가, 추가, ...
void addAll(int index, Collection c) 지정한 위치부터 주어진 컬렉션의 데이터를 저장한다.
자리에 있던 기존의 데이터는 뒤로 밀려나기만 할 뿐 삭제되지 않는다.
ex) addAll(2, Collection) → 기존, 기존, 추가, 추가, ... , 기존, 기존
Object set(int index, Object obj) 지정한 위치(index)의 객체를 주어진 객체(obj)로 바꾼다.자리에 있던 기존의 데이터는 삭제되고 새로운 데이터가 대체되어 들어간다.ex) set(2, Object) → 기존, 기존, 변경, 기존, 기존
Object remove(int index) 지정된 위치(index)에 있는 객체를 제거한다.
boolean remove(Object obj) 지정된 객체를 제거한다.(성공하면 true)
boolean removeAll(Collection c) 지정한 컬렉션에 저장된 것과 동일한 노드들을 LinkedList에서 제거한다.
boolean retainAll(Collection c) LinkedList에 저장된 객체 중에서 주어진 컬렉션과 공통된 것들만 남기고 제거한다.
void clear() LinkedList를 완전히 비운다.
int size() LinkedList에 저장된 객체의 개수를 반환한다.
boolean isEmpty() LinkedList가 비어있는지 확인한다.
boolean contains(Object obj) 지정된 객체(obj)가 LinkedList에 포함되어 있는지 확인한다.
boolean containsAll(Collection c) 지정된 컬렉션의 모든 요소가 포함되었는지 알려줌.
int indexOf(Object obj) 지정된 객체(obj)가 저장된 위치를 찾아 반환한다.
int lastIndexOf(Object obj) 지정된 객체(obj)가 저장된 위치를 뒤에서 부터 역방향으로 찾아 반환한다.
Iterator iterator() LinkedList의 Iterator객체를 반환한다.
ListIterator listIterator() LinkedList의 ListIterator를 반환한다.
ListIterator listIterator(int index) LinkedList의 지정된 위치부터 시작하는 ListIterator를 반환한다.
Object[] toArray() LinkedList에 저장된 모든 객체들을 객체배열로 반환한다.
Object[] toArray(Obejct[] objArr) LinkedList에 저장된 모든 객체들을 객체배열 objArr에 담아 반환한다.
Object element() LinkedList에 첫 번째 노드를 반환
boolean offer(Obejct obj) 지정된 객체(obj)를 LinkedList의 끝에 추가.
성공하면 true 실패하면 false
Object peek() LinkedList의 첫 번째 요소를 반환
Object poll() LinkedList의 첫 번째 요소를 반환LInkedList의 요소에서는 제거된다.
Object remove() LinkedList의 첫 번째 요소를 제거
void addFirst(Object obj) LinkedList의 맨 앞에 객체(obj)를 추가
void addLast(Objec obj) LinkedList의 맨 뒤에 객체(obj)를 추가
void push(Object obj) 맨 앞에 객체(obj)를 추가 (addFirst와 동일)
Iterator descendingItorator() 역순으로 조회하기 위한 DescendingItorator를 반환
Object getFrist() LinkedList의 첫번째 노드를 반환
Object getLast() LinkedList의 마지막 노드를 반환
boolean offerFirst(Object obj) 지정된 객체(obj)를 LinkedList의 맨 앞에 추가, 성공하면 ture
boolean offerLast(Object obj) 지정된 객체(obj)를 LinkedList의 맨 뒤에 추가, 성공하면 ture
Object peakFirst() 첫번째 노드를 반환
Object peakLast() 마지막 노드를 반환
Object pollFirst() 첫번째 노드를 반환하면서 제거
Object pollLast() 마지막 노드를 반환하면서 제거
Obejct removeFirst() 첫번째 노드를 제거
Object removeLast() 마지막 노드를 제거
Object pop() 첫번째 노드를 제거 (removeFirst와 동일)
boolean removeFirstOccurrence(
Obejct obj)
첫번째로 일치하는 객체를 제거
boolean removeLastOccurrence(
Obejct obj)
마지막으로 일치하는 객체를 제거

HashSet

데이터의 저장순서 유지되지 않고 중복 허용하지 않는다.특징을 히용하여 컬렉션 내의 중복 요소를 제거하기 편하다.해싱(Hashing)을 사용하여많은 양의 데이터 검색하는데 높은 성능을 보인다.**
Set인터페이스를 구현한 가장 **대표적인 컬렉션이다.👏
**💡
(많은 양의 데이터를 저장하는데 적합하다.)**

HashSet은 저장순서를 유지하지 않기 때문에 만약 저장순서를 유지하고 싶다면 LinkedHashSet을 사용해야 한다.

생성자

Set<K> set = new HashSet<K>();

메소드

add, addAll - 객체 추가

메소드 설 명
boolean add(Object obj) 새로운 객체를 저장한다.
boolean addAll(Collection c) 주어진 컬렉션에 저장된 모든 객체들을 추가한다.(합집합)

clear - 모든 데이터 삭제

메소드 설 명
void clear() 저장된 모든 객체를 삭제한다.

clone - 복제

메소드 설 명
Object clone() HashSet을 복사해서 반환한다.(얕은 복사)

contains, containsAll - 데이터 확인

메소드 설 명
boolean contains(Object obj) 지정된 객체를 포함하고 있는지 알려준다.
boolean containsAll(Collection c) 주어진 컬렉션에 저장된 모든 객체들을 포함하고 있는지 알려준다.

isEmpty() - 비었는지 확인

메소드 설 명
boolean isEmpty() HashSet이 비었는지 알려준다.

iterator() - Iterator반환

메소드 설 명
Iterator iterator() Iterator를 반환한다.

remove, removeAll - 삭제

메소드 설 명
boolean remove(Object obj) 지정된 객체를 HashSet에서 삭제한다.
(성공하면 true, 실패하면 false를 반환한다.)
boolean removeAll(Collection c) 주어진 컬렉션에 저장된 모든 객체와 동일한 것들을 HashSet에서 삭제한다.(차집합)(성공하면 true, 실패하면 false를 반환한다.)

retainAll - 동일한 것만 남기고 삭제

메소드 설 명
boolean retainAll(Collection c) 주어진 컬렉션에 저장된 객체와 동일한 것만 남기고 삭제한다. (교집합)

size() - 저장 개수 반환

메소드 설 명
int size() 저장된 객체의 개수를 반환한다.

toArray() - 배열화

메소드 설 명
Object[] toArray() 저장된 객체들을 객체배열의 형태로 반환한다.
Object[] toArray(Object[] arr) 저장된 객체들을 주어진 객체배열(arr)에 담는다.

HashMap

키(key) 값(value)을 묶어 하나의 데이터로 저장한다
해싱(Hashing)을 사용하여 많은 양의 데이터를 검색하는데 높은 성능을 보인다.
💡(많은 양의 데이터를 저장하는데 적합하다.)

 

HashMap은 키와 값이 각각 Object타입으로 어떠한 객체도 저장할 수 있지만

키는 주로 String을 대문자 또는로 통일해서 사용하곤 한다.

키(key)   컬렉션 내의 저장된 값을 찾는데 사용되기 때문에 유일해야 한다.
값(value) 키(key)와 달리 데이터의 중복을 허용한다.

생성자

Map<K, V> hashMap = new HashMap<K, V>();

메소드

메소드 설명
Object get(Object key) 지정된 키(key)의 값(객체)을 반환, 못찾으면 null 반환
Object getOrDefault(Object key, Object defaultValue) 지정된 키(key)의 값(객체)을 반환
못찾으면 기본값(defaultValue)에 지정된 객체를 반환.
Object put(Object key, Object value) 지정된 키와 값을 HashMap에 저장
void putAll(Map m) Map에 저장된 모든 요소를 HashMap에 저장
Object clone() 현재 HashMap을 복제해서 반환
Object remove(Object key) HashMap에서 지정된 키로 저장된 값(객체를 제거)
Object replace(Object key, Object value) 지정된 키의 값을 지정된 객체(value)로 대체
boolean replace(Object key,Object oldValue, Object newValue) 지정된 키와 객체(oldValue)가 모두 일치하는 경우에만새로운 객체(newValue)로 대체
void clear() HashMap에 저장된 모든 객체를 제거
int size() HashMap에 저장된 요소의 개수를 반환
boolean isEmpty() HashMap이 비어있는지 알려준다.
boolean containsKey(Object key) HashMap에 지정된 키(key)가 포함되어있는지 알려준다
포함되어 있으면 ture
boolean containsValue(Object value) HashMap에 지정된 값(value)가 포함되어있는지 알려준다
포함되어 있으면 true
Set keySet() HashMap에 저장된 모든 키가 저장된 Set을 반환
Set entrySet() HashMap에 저장된 키와 값을 엔트리(키와 값의 결합)의형태로 Set에 저장해서 반환
Collection values() HashMap에 저장된 모든 값을 컬렉션의 형태로 반환

HashMap

HashMap과 구조가 비슷하지만 용도는 다름

HashTable은 키와 값을 1:1형태로 가져가며 HashTable에 저장이 됨

 -> 키는 값을 식별하기 위한 고유한 키, 값은 키가 가진 값을 의미함

HashMap과 반대로 동기화가 이루어짐

HashMap에서는 값으로 null이 입력이 가능하지만 HashTable에서는 null 입력이 불가능

위와 같이 키, 값 형태를 가짐

키는 중복이 안 되지만 값은 중복을 허용

HashTable 생성자

Map<K, V> hashMap = new HashMap<K, V>();
Map<K, V> hashTable = new HashTable<K, V>();

메소드

void clear() 해당 맵(map)의 모든 매핑(mapping)을 제거함.
boolean containsKey(Object key) 해당 맵이 전달된 키를 포함하고 있는지를 확인함.
boolean containsValue(Object value) 해당 맵이 전달된 값에 해당하는 하나 이상의 키를 포함하고 있는지를 확인함.
V get(Object key) 해당 맵에서 전달된 키에 대응하는 값을 반환함.
만약 해당 맵이 전달된 키를 포함한 매핑을 포함하고 있지 않으면 null을 반환함.
boolean isEmpty() 해당 맵이 비어있는지를 확인함.
Set<K> keySet() 해당 맵에 포함되어 있는 모든 키로 만들어진 Set 객체를 반환함.
V put(K key, V value) 해당 맵에 전달된 키에 대응하는 값으로 특정 값을 매핑함.
V remove(Object key) 해당 맵에서 전달된 키에 대응하는 매핑을 제거함.
boolean remove(Object key, Object value) 해당 맵에서 특정 값에 대응하는 특정 키의 매핑을 제거함.
V replace(K key, V value) 해당 맵에서 전달된 키에 대응하는 값을 특정 값으로 대체함.
boolean replace(K key, V oldValue, V newValue) 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체함.
int size() 해당 맵의 매핑의 총 개수를 반환함.

 

'자바~하둡' 카테고리의 다른 글

JavaScript  (0) 2021.12.27
자바정리 ver.0.2  (0) 2021.12.26
JSP(CSS)_2  (0) 2021.12.24
JSP(CSS)  (0) 2021.12.23
M.V.C. C.R.U.D.  (0) 2021.12.22
Comment