자바

JAVA STEP 38. 컬렉션(HashSet)

2023. 2. 24. 17:53
728x90

★ 컬렉션

1.  List 계열

  • 순서가 있는 집합
  • 첨자(방번호)
  • 데이터 중복을 허용한다.

2. Map 계열

  • 순서가 없는 집합
  • 키
  • 데이터 중복을 허용한다.

3. Set 계열

  • 순서가 없는 집합
  • 식별자가 없다. > 방과 방을 구분할 수 없다.
  • 데이터 중복을 허용하지 않는다.

 

★ HashSet

  • 기본 요소
  • 소스코드
  •  
private static void m1() {
		
		HashSet<String> set = new HashSet<String>();
		
		//1. 요소 추가하기
		set.add("사과");
		set.add("딸기");
		set.add("바나나");
		
		//2. 요소 개수
		System.out.println(set.size());
		
		//3. 덤프
		System.out.println(set);
		
		//4. 중복된 값 추가하기
		boolean result = set.add("사과"); //안들어감(기존에 사과가 있어서..)
		System.out.println(result);
		
		System.out.println(set);
		
		//5. 검색
		set.contains(set.contains("사과"));
		
		//6. 삭제
		set.remove("사과");
		System.out.println(set);
		
		//7. 요소 읽기?? > 탐색 통해서
		for(String item : set) { //for문 시작할때 이터레이터를 생성한다.
			System.out.println(item);
		}
		
		System.out.println();
		System.out.println();
		
		//위의 향상된 for문의 탐색 > 원본
		
		//이터레이터 > 데이터 집합을 탐색하는 도구 > 탐색기
		//*** 끝까지 읽고 나면 다시 읽을 수 없다.
		Iterator<String> iter = set.iterator();
		
		while(iter.hasNext()) {
			System.out.println(iter.next());
		}
		
		//이터레이터 > 다시 읽으려면 다시 선언을 해줘야함.
		iter = set.iterator();
		System.out.println(iter.next());
		
//		System.out.println(iter.hasNext());
//		System.out.println(iter.next());
//		
//		System.out.println(iter.hasNext());
//		System.out.println(iter.next());
		
	
		
		
		
//		ArrayList<String> list = new ArrayList<String>();
//		
//		list.add("사과");
//		list.add("사과");
//		list.add("사과");
		
		
	}

 

HashSet 예제 1) 로또 번호 > 중복 되지 않는 난수

  • ArrayList를 사용하였을 경우
  •  
ArrayList<Integer> lotto = new ArrayList<Integer>();
		
		for(int i =0; i<6; i++) {
			
			int n = (int)(Math.random()*45)+1;
            
            if(!lotto.contains(n)) {
				lotto.add(n);
			}else {
				i--;
			}
			
			
		}
  • Hash set을 사용하였을 경우
  •  
HashSet<Integer> lotto2 = new HashSet<Integer>();
		
		while(lotto2.size() < 6) {
			
			int n = (int)(Math.random()*45)+1;
			lotto2.add(n); //HashSet은 자율적으로 중복값 배제
			
		}
		System.out.println(lotto2);

 

HashSet 예제 2) 경품 행사 

  • 소스코드
  •  
private static void m3() {
		
		//마트 경품 행사
		//1등 : 아이패드
		//2등 : 에어팟
		//3등 : 참치세트
		//4등 : 김세트
		//5등 : 맥스봉
		
		String[] list = {"홍길동", "아무개", "하하하", "호호호", "후후후", "유재석", "강호동", "박명수", "정형돈", "조세호"};
		
		//추첨
		//1. 중복 당첨 허용(O) > ArrayList
		//2. 중복 당첨 허용(X) > HashSet
		
		for(int i=0; i<5; i++) {
			System.out.println(list[(int)(Math.random()*10)]);
		}
		System.out.println();
		
		HashSet<String> set = new HashSet<String>();
		
		while(set.size() < 5) {
			set.add(list[(int)(Math.random()*10)]);
		}
		System.out.println(set);
		
		
	}
728x90
저작자표시 비영리 변경금지 (새창열림)

'자바' 카테고리의 다른 글

JAVA STEP 40. File/Directory 조작  (0) 2023.02.24
JAVA STEP 39. Hashset 직접 구현하기  (0) 2023.02.24
JAVA STEP 37. HashMap 직접 구현하기  (0) 2023.02.24
JAVA STEP 36. 컬렉션(HashMap)  (0) 2023.02.24
JAVA STEP 35. Queue&Stack 직접 구현하기  (0) 2023.02.23
'자바' 카테고리의 다른 글
  • JAVA STEP 40. File/Directory 조작
  • JAVA STEP 39. Hashset 직접 구현하기
  • JAVA STEP 37. HashMap 직접 구현하기
  • JAVA STEP 36. 컬렉션(HashMap)
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • 웹개발자
  • React
  • 알고리즘
  • IT자격증공부
  • 개발자
  • 정보보안전문가
  • 정보처리기사
  • DBA
  • DB
  • jsp
  • css
  • html
  • 백준
  • 데이터베이스
  • 웹페이지
  • it
  • 앱개발자
  • 개발블로그
  • jquery
  • 자바
  • JavaScript
  • IT개발자
  • 웹개발
  • 백엔드
  • 코딩테스트
  • ajax
  • java
  • IT자격증
  • 프론트엔드
  • 정보처리기사필기

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
JAVA STEP 38. 컬렉션(HashSet)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.