본문 바로가기
Java/Java

컬렉션/Set<E>) LinkedHashSet<E>, 주요 메소드

by 박채니 2022. 3. 31.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


컬렉션이란?

- 동일한 타입을 묶어 관리하는 자료 구조

 

컬렉션 프레임워크란?

- 리스트, 스택, 큐, 트리 등의 자료구조에 정렬, 탐색 등의 알고리즘을 구조화해 놓은 프레임워크

- 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음

 

컬렉션의 특성에 따라 구분하면 크게 List<E>, Set<E>, Map<K, V>로 나뉩니다.

메모리의 입출력 특성에 따라 기존 컬렉션 기능을 확장/조합한 Stack<E>, Queue<E>도 있습니다.(사진에선 누락)

 


☞ Set<E> 컬렉션 프레임워크

인덱스 정보를 포함하고 있지 않은, 집합의 개념

순서를 유지하지 않고 저장

중복 허용 하지 않음

- Null 값도 중복을 허용 하지 않으므로 하나의 Null 값만 저장

 

Set<E>의 주요 메소드 (인덱스 관련 메소드 X)

구분 리턴타입 메소드명 기능
데이터 추가 boolean add(E element) 매개변수로 입력된 원소를 리스트에 추가
boolean addAll(Collection<? Extends E> c) 매개변수로 입력된 컬렉션 전체를 추가
데이터 삭제 boolean removed(Object o) 원소 중 매개변수 입력과 동일한 객체 삭제
void clear() 전체 원소 삭제
데이터 정보
추출
boolean isEmpty() Set<E> 객체가 비어 있는 지 여부를 리턴
boolean contains(Object o) 매개변수로 입력된 원소가 있는지 여부를 리턴
int size() 리스트 객체 내에 포함된 원소의 개수
Iterator<E> iterator() Set<E> 객체 내의 데이터를 연속해
꺼내는 Iterator 객체 리턴
Set<E> 객체
배열 변환
Object[] toArray() 리스트를 Object 배열로 변환
T[] toArray(T[] t) 입력매개변수로 전달한 타입의 배열로 변환

 


☞ LinkedHashSet<E>

- 기본적으로 HashSet<E>가 동일

- 다만 추가되는 순서를 유지해줌

 

HashSet<E> 출력 - 입력 순서를 유지하지 않음

Set<Student> set = new HashSet<>();
set.add(new Student(2, "신사임당"));
set.add(new Student(1, "홍길동"));
set.add(new Student(3, "장보고"));
		
System.out.println(set);

@콘솔출력값
[Student [no=3, name=장보고], Student [no=1, name=홍길동], Student [no=2, name=신사임당]]

HashSet<E>은 입력 순서를 유지해주지 않기 때문에 입력한 순서와 출력되는 순서가 상이합니다.

 

LinkedHashSet<E> 출력 - 입력 순서 유지

//Set<Student> set = new HashSet<>();
Set<Student> set = new LinkedHashSet<>();
set.add(new Student(2, "신사임당"));
set.add(new Student(1, "홍길동"));
set.add(new Student(3, "장보고"));
		
System.out.println(set);

@콘솔출력값
[Student [no=2, name=신사임당], Student [no=1, name=홍길동], Student [no=3, name=장보고]]

그에 비해 LinkedHashSet<E>은 HashSet<E>의 특성 + 입력 순서 유지 기능이 추가 된 것으로, 입력 순서가 유지되어 출력되는 것을 확인할 수 있습니다.

 

단, 입력 순서의 정보는 갖고 있지만, List<E>처럼 인덱스를 이용하여 중간에 데이터를 추가하거나 값을 가져오는 것은 불가능!!

 

이 외 사용 방법이 HashSet<E>과 동일하기 때문에 따로 실습 하진 않겠습니다.

 

 

HashSet<E> 참고 링크

https://chanychu.tistory.com/135?category=959041

 

컬렉션/Set<E>) HashSet<E>, 주요 메소드, 중복 제거

안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. 컬렉션이란? - 동일한 타입을 묶어 관리하는 자료 구조 컬렉션 프레임워크

chanychu.tistory.com