[JAVA] 컬렉션(Collection)

Dawon Ruby Choi·2023년 9월 6일
0

Java

목록 보기
17/18
post-thumbnail

컬렉션 : 데이터의 집합, 그룹을 의미,
JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렌션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공

컬렉션의 장점

  • 한 번 크기를 지정하면 변경할 수 없는 배열의 장점을 보완
  • 3번의 장점이 있으나, 그 경우 컴퓨터가 instance of를 이용해 타입을 검사하고 수행해야하는 번거로움이 있음 그래서 genetic <>을 통해 타입제한을 시킴

**제네릭 <> : 타입제한 가능

instanceof는 객체 타입을 확인하는 연산자이다.
형변환 가능 여부를 확인하며 true / false로 결과를 반환한다.
주로 상속 관계에서 부모객체인지 자식 객체인지 확인하는 데 사용된다.

instanceof의 기본 사용방법은 "객체 instanceof 클래스" 를 선언함으로써 사용한다.

★★★★★ 컬렉션의 주요 인터페이스 ★★★★★

List 와 Set은 Collection의 상속을 받기 떄문에 구조와 메소드가 비슷함

List Set은 객체 하나만 넣으면 되는데
Map은 키와 값을 쌍으로 넣어야함

*키는 중복 저장 불가 (set방식을 따름)
값은 중복 저장 가능 (list방식을 따름)

Map은 키를 따르기 때문에 순서 유지하지 않고 저장, 중복저장안됨 (set 방식)

List

(인덱스를 가지고 있음)

ArrayList

LinkedList

조회용으로 많이 사용

리스트(List)의 주요 기능

삽입: List.add(값);

중간 삽입: List.add(index, value);

  • index: 중간에 넣을 인덱스(배열 인덱스),
  • value: 중간에 넣을 값. (중간에 값을 넣을 경우 중간에 넣은 값 이후에 값들은 한 칸씩 밀리게 됩니다.

치환: List.set(index, value); : 중간 삽입과 비슷하게 index는 치환할 값 자리에 인덱스이고 value는 치환할 자리의 값이다.

삭제: List.remove(index); : 인덱스 위치에 있는 값을 삭제한다.

전체 삭제: List.clear(); 모든 요소를 삭제

출력: List.get(index) : 인덱스 위치에 있는 값을 출력

사이즈: List.size() : 리스트에 크기를 알 수 있다.

Set

(인덱스를 가지고 있지 않음)

동일객체 = 주소값이 같은 객체
동등객체 = 주소값이 같지 않지만 내용이 같은 객체

HashSet

equals로 오버라이딩을 통하여 확인 가능

LinkedHashSet

순서 유지하고 싶을 때 사용

TreeSet

정렬기준이 세워져있을때 사용

기존 정렬기준 1개 :compareTo
그외 새로운 정렬기준 : comporator

Iterator

1.기본적으로 단방향, 상속받으면 양방향 가능
2.재사용 불가
ex)

Iterator<Dog> it = set4.iterator();
		while(it.hasNext()) { // hasNext : set안에서 더 꺼내올만한 것이 있는지 확인
			System.out.println(it.next());
		}
		
		while(it.hasNext()) {
			System.out.println("re : " + it.next()); //재사용 불가라 뜨지 않음
	}

▲re가 실행되지 않음

Map

키 값은 중복저장 되지 않아서 뒤로 들어온 값으로 덮어씌운다
엔트리 : 키와 값 묶음
정렬은 키로 해줌
키에 대한 제네릭은 주로 string 사용

Properties

키와 값을 sting타입으로 제한하는 Map 컬렉션의 클래스

파일을 읽고 담는 용도로 많이 사용
제네릭을 사용할 필요 없음 (타입 제한을 성질ㅇ을 이미 가지고 있기 때문에 )

Enumeration 와일드카드

반환타입 object

profile
나의 코딩 다이어리🖥️👾✨

0개의 댓글