반응형

1. 문제 번호 3052번


 

 

 

2. 문제 풀이 

 - HashSet 

 

 

나의 문제풀이 방식 및 순서

 - KeyPoint는 중복을 제거하는거라고 생각함 

 

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String inputLine = null;
        List<Integer> inputList = new ArrayList<>();

        while( (inputLine=br.readLine()) != null && !inputLine.isEmpty() ){
            int parseIntInputLine = Integer.parseInt(inputLine);
            inputList.add(parseIntInputLine%42);
        }

        Set<Integer> submitSet = new HashSet<>(inputList);

        System.out.println(submitSet.size());

        
    }
}

 

 

 

 

 

- 실패 소스코드 -

4. 추가 개념

 

 

HashSet 

HashSet의 성질

1.  HashSet 중복 허용 X

값 존재 유무 파악할 때 사용 가능

 

2. List 등과는 다르게 순서 보장 X

저장 순서를 유지하고자 한다면 LinkedHashSet 사용

 

3. Null값을 허용

 

HashSet의  구현

// 타입을 지정 가능
HashSet<String> alphabet1 = new HashSet<String>();

// 타입을 생략하여 사용 가능 -> 빈 HashSet생성 시 사용
HashSet<String> alphabet2 = new HashSet<>();  

// 초기 용량(Capacity) 설정
HashSet<String> alphabet3 = new HashSet<>(10); 

 // animal의 모든 값을 가진 HashSet 생성 
HashSet<String> alphabet4 = new HashSet<>(alphabet1);

//초기값 지정 가능
HashSet<String> alphabet5 = new HashSet<>(Arrays.asList("A", "B", "C"));

 

HashSet의  값 추가  및 삭제,  사이즈 확인

//순서가 없으므로 특정 위치에 값 추가 불가
HashSet<String> alphabet = new HashSet<>()
                alphabet.add("A");
                alphabet.add("B");
                alphabet.add("C");
    

//값 B 제거
set.remove(2);
//모든 값을 제거
set.clear();


/********사이즈 확인********/
System.out.println(alphabet.size());

 

  • HashSet 내부에 존재하지 않는다면 그 값을 HashSet에 추가/삭제 하고 true 를 반환한다.
  • HashSet 내부에 존재한다면 false를 반환한다.

 

 

HashSet의  요소 값 검색 및 출력

HashSet<String> alphabet = new HashSet<String>(Arrays.asList("A","B","C"));

////set내부에 값 1이 있다면 true 출력, 없다면 false 출력
System.out.println(alphabet.contains("B"));




//출력결과 :  [A,B,C]
System.out.println(alphabet); 
		

Iterator iter = set.iterator();	

//hasNext() : 가져올 객체가 있다면 true 리턴, 없다면 false 리턴
// next() : Iterator에서 하나의 객체를 가져올 수 있는 메소드
while(iter.hasNext()) {
    System.out.println(iter.next());
}

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

https://velog.io/@acacia__u/hashSet

 

[Java] HashSet의 개념과 사용법 정리

Set 이란? Set 인터페이스 구현 클래스 객체를 중복해서 저장할 수 없으며, 하나의 null 값만 저장할 수 있다. 중복을 자동으로 제거해준다. Set은 비선형 구조이기 때문에 '순서'의 개념과 '인덱스'

velog.io

 

728x90
반응형

+ Recent posts