JAVA2 BASIC5

으누·2024년 8월 31일
0

Set : 집합

- 데이터의 순서를 보장하지 않는다
- 데이터의 중복을 허용하지 않는다.

구현 클래스

- HashSet

	Set인터페이스를 구현한 가장 대표적인 클래스
	중복되는 값을 저장하면 무시한다. 인덱스 존재하지 않아
	순서를 보장하지 않으며 ArrayList나 배열처럼 값을 가져오는게 
	불가능하다.
	hashCode()가 반환되는 해시코드를 이용하여 데이터를 처리하며
	상대적으로 빠르다.
	위의 특징 때문에 값의 존재여부를 파악할 때 사용하기가 좋다.(검색)

- 순서 부여 : iterator()
	순서가 없는 객체에 순서를 부여하거나, 순서가 있어도 iterator 방식의
	순서로 변경하고자 할 때 사용한다.
	hesNext()를 통해 다음 값이 있는지 검사하고, next()를 사용하여
	값을 가져온다.

Map

데이터의 순서를 보장하지 않는다.
데이터를 Key와 Value 한 쌍으로 저장하여 Key로 데이터에 접근할 수 있다.
그러므로 Key는 ArrayList의 index와 비슷한 역할을 하며 중복을 혀용하지 않는다.
index에 중복이 없는 것과 동일하다고 생각하면 된다.

구현 클래스

- HashMap

	hashCode()가 반환되는 해시코드를 이용하며 검색 속도가 상대적으로
	빠르다.
	이미 저장된 Key를 가진 한 쌍의 데이터를 넣으면 가장 마지막에 넣은 
	Value로 수정된다. (Value는 수정이 가능하다.)
	저장되지 않은 Key를 가진 한 쌍의 데이터를 넣으면 새롭게 추가된다.

Object

1. toString()

	항상 객체명을 출력할 때에는 toString()을 붙여서 출력해준다.
	따라서 객체명만 출력메소드에 전달하더라도 toString() 문자열 값이
	출력된다.
	기본적으로 Object에서는 소속과 필드 주소를 문자열로 리턴해주지만,
	실사용에서는 불필요한 정보이기 때문에 재정의한 뒤 필드의 정보를
	확인하도록 구현한다.
	실무에서는 클래스 선언 시 각 필드의 초기화 여부를 확인하기 위해
	toString()을 재정의하여 사용한다.

2. equals()

	주소값 비교(==)
	객체 주소 비교가 아닌 특정 필드를 비교해야 하는 경우 재정의 한다.

3. hashCode()

	JVM에서 관리하는 중복없는 값
	실제 메모리에 할당되는 주소와 다르다.
profile
코딩 일기장

0개의 댓글