Java/basic

[JAVA] 제네릭과 컬렉션

동누크 2022. 12. 26. 15:48

컬렉션

  • 요소(element)라고 불리는 가변 개수의 객체들의 저장소
  • 객체들의 컨테이너라고도 불림
  • 고정 크기의 배열을 다루는 어려움 해소
  • 다양한 객체를 삽입, 삭제 검색 할 수 있음
  • 컬렉션은 제네릭 기법으로 구현됨

제네릭

  • 특정 타입만 다루지 않고 여러 종류의 타입으로 변신할 수 있도록 클래스나 메서드를 일반화시키는 기법
Vector<E>	// 제네릭 벡터
Vector<Integer>	// 정수만 다루는 벡터
Vector<Stirng> // 문자열만 다루는 벡터

ArrayList<E>

  • 가변 크기의 배열
ArrayList<Integer> = new ArrayList<>();

ArrayList 주요 메서드

Iterator<E>

  • 컬렉션의 순차 검색에 이용

Iterator 주요 메서드

  • iterator() 메서드
    • 메서드를 호출하면 Iterator 객체 반환
    • Iterator 객체를 이용하여 index 없이 순차 검색 가능
Iterator<Integer> it = al.iterator();
while(it.hasNext()) {
	int n = it.next();
  	System.out.println(n);
}
Iterator 개념을 접했다면 for, while과 같은 반복문과 비교했을 때 속도 비교에 관하여 궁금증이 생길 수 있다.
해당 내용과 관련해서 잘 정리된 포스트가 있어 링크를 남긴다.
반복문 속도 비교 링크: https://3colored.tistory.com/5

HashMap<E>

  • 키(key)와 값(value)의 쌍으로 구성되는 요소를 다루는 컬렉션
  • 주요 메서드
    - put() : 요소 삽입
    - get() : 요소 검색 (값 접근의 경우 키를 이용)

LinkedList<E>

  • ArrayList 클래스와 유사하게 작동
  • element 객체들은 양방향으로 연결되어 관리
  • element 객체는 맨 앞, 맨 뒤 또는 인덱스를 이용하여 중간에 삽입 가능
  • 스택이나 큐로 사용 가능

Collections 클래스

  • 컬렉션에 대해 연산 수행, 결과로 컬렉션 return
  • 모든 메서드는 static 타입
  • 주요 메서드
    - sort() : 정렬
    - reverse() : element의 순서를 반대로
    - max(), min() : 최댓값, 최솟값
    - binarySearch() : 특정 값 검색

제네릭 객체 생성 - 구체화

  • 타입 매개 변수에 기본 타입은 사용할 수 없음 (Ex. int)

이미지 출처 : 명품 JAVA 프로그래밍 (황기태, 김효수 저)

'Java > basic' 카테고리의 다른 글

[JAVA] 네트워크  (0) 2022.12.26
[JAVA] 입출력 스트림과 파일 입출력  (0) 2022.12.26
[JAVA] 상속  (0) 2022.12.26