HashMap, HashSet, ArrayList, Iterator

조수경·2021년 11월 7일

고급자바

목록 보기
21/97

Collection Framework(CF, 컬렉션 프레임워크)

​

  • 참고

ArrayList와HashMap많이쓰고

상대적으로HashSet은 덜 사용한다

​

각 인터페이스별 핵심 클래스(보편적 많이 사용)

ArrayList

배열형식으로 저장하는 객체 목록 클래스
순서가 존재, 중복된 객체 저장 가능

HashSet

해쉬코드를 사용하여 객체를 배치,
순서가 없음. 중복된 객체 저장 불가.
순차적으로 사용해야 할 경우 iterator 구조체로 변경.

HashMap

해쉬코드를 사용하여 객체를 배치
키와 값의 쌍으로 객체를 저장.

​

Wrapper Class

기본(Primitive) 자료형의 클래스화

자바는 모든 것을 객체로 프로그래밍하도록 설계되었다.

문제가 되는 것은 기존 프로그래밍 언어에서 사용한 자료형인데,

이(기본)자료형은 객체가 아니기 때문이다.

그래서, 이 자료형을 클래스로 만든 것이 랩퍼 클래스이다.

​

랩퍼 클래스는 기본 자료형에 해당하는 데이터를 동적인 객체로 취급하도록 하며, 동시에 다양한 부가 기능을 제공한다.

주요 부가기능이 바로 문자열을 해당 자료형 데이터로 바꾸는 것이다.

예) 정수 -> Integer.parseInt(숫자문자열);

​

특히 객체를 저장하도록 설계된 C.F에서는 리터럴(일반 값)으로 저장이 불가능하게 설계되어 있어서 반드시 기본 자료형 데이터 객체로 만들어 저장해야하며, 이때 랩퍼 클래스가 사용된다.

byte > Byte

boolean > Boolean

char > Character

short > Short

int > Integer

long > Long

float > Float

double > Double

​

HashSet

add() : 객체 추가용 메소드

remove(): 객체 삭제용 메소드(iterator의 remove사용)

clear(): 원소 전체 삭제

size(): 집합의 크기

contains(): 특정 원소 존재 유무확인

set은 순번이 없기 때문에, 하나씩 모든 원소를 꺼내는 작업이 불가능
iterator로 변환하여 사용

​

Iterator 인터페이스

Collection의 순차적인 접근 방법을 제공하는 인터페이스.

Set의 경우 비순차적으로 저장하기 때문에, Iterator를 사용

​

Iterator의 3개 메소드

1. HasNext() : 처리할 원소가 있는지 여부 확인

처리할 원소가 있으면 true, 없으면 false (while문과 사용)

2.Next(): 해당 순번의 원소를 가져오는 메소드

3.remove(): 가져온 원소를 삭제

​

List에서도 안전한 삭제를 위해 Iterator를 활용.

​

HashMap

한번에 두 데이터를 저장

한 쌍으로 이루어진 데이터. 영단어 사전 - 단어 : 뜻

키와 값의 쌍으로 저장. 값을 키로 검색하는 구조.

profile
신입 개발자 입니다!!!

0개의 댓글