자바 컬렉션 프레임워크 - Set

MIN·2023년 11월 15일

Java

목록 보기
24/36
post-thumbnail

학원 수업내용 복습

🍊 Set이란?

set은 지난번 게시글에 올렸던 list와 같이 자바 컬렉션 프레임워크중 하나다.

set은 list와 비슷하지만 순서가 없고 중복을 허용하지 않는다는 점이 다르다. 이러한 특징때문에 set은 중복을 제거할 때 많이 사용한다.


🍊 Set 사용하기

set을 구현한 클래스는 인터페이스므로 이를 상속받는 Hashset을 사용한다.

Hashset< E e > set = new Hashset< >( );

set의 길이확인 및 값 추가는 list와 동일한 함수를 사용한다.

  • 길이확인 : set.size( )
  • 값 추가 : set.add( )

이때 주의해야 할 점은 add를 이용하여 값을 넣을 때 같은 값을 여러번 넣어도 중복허용이 안되기 때문에 처음 한 번만 반영된다.

🍊 set의 내부요소 출력하기

set은 순서가 없기 때문에 index가 존재하지 않는다.
따라서 list처럼 .get을 이용해 값을 불러올 수 없다.
하지만 향상된 for문 또는 순환자 Iterator를 사용하여 내부요소를 출력할 수 있다.

💡 향상된 for문을 이용해 내부요소 출력

for(Strign s : set) {
	System.out.println(s);
    // set안에 있는 각 문자열을 s라고 할 때 
    // 각각의 s를 출력한다.
}

💡 순환자 Iterator을 이용해 내부요소 출력

// 순환자 Iterator를 이용한 반복 (특정 클래스에서 사용해야 한다)
Iterator<String> it = set.iterator();
		
while(it.hasNext()) {	// 순환자에서 아직 사용하지 않은 값이 남아있다면
	String s = it.next();	// 그 값을 꺼내서 변수에 담은 다음
	System.out.println(s); 	// s를 출력한다
}	

💡 list로 바꾸어 출력하기

다른 방법으로는 list로 바꾸어서 출력할 수도 있다.
이미 만들어진 컬렉션을 다른 컬렉션의 생성자에 전달하면 요소를 유지하면서 새로운 컬렉션을 생성한다.

// Set안에 있는 문자열을 그대로 새로운 List 생성에 사용하기
ArrayList<String> list = new ArrayList<>(set);
System.out.println("list : " + list);
// list로 바꾸어주면 순서가 생겨서 정렬도 가능해지고 
//특정 순번에 값을 넣는것도 가능해진다
profile
기초부터 시작하는 감쟈 ※ 소개글 확인해주세요!! ※

0개의 댓글