티스토리 뷰
저번 게시물에서는 HashMap에 대해 다뤄보았다.
이번 게시물에서는 HashSet에 대해 알아보자.
[ HashSet ]
- HashSet은 Set 인터페이스를 구현한 클래스이다.
- 순서가 없다.
- key 값도 없다.
- 중복을 허용하지 않는다.
- 어떤 데이터를 중복 없는 묶음(집합)으로 관리하고자 할 때 사용한다.
주요 메소드
.add(elem) //원소 추가
.contains(elem) //elem을 포함하는지 여부
.remove(elem) //삭제를 시도하고 성공 여부 반환
"주요 메소드 활용해보기"
예제 1
1. HashSet 객체를 생성하고 Generic이 String인 Set 타입의 지역변수 set1에 참조값을 담아보자.
Set<String> set1 = new HashSet<>();
2. set1에 데이터를 추가해보자.
//데이터 추가
set1.add("김구라");
set1.add("해골");
set1.add("원숭이");
set1.add("원숭이");//중복 불가
중복된 데이터를 추가할 수 없는 모습을 확인할 수 있다.
3. "해골" 을 원소로 가지고 있는지 확인해보자.
boolean result = set1.contains("해골"); //true
4. "원숭이"를 삭제해보고 삭제를 성공하였는지 여부를 isDelete 지역변수에 담아보자.
boolean isDelete = set1.remove("원숭이");
5. 반복문 객체를 활용하여 아이템을 하나씩 출력해보자.
//반복문 객체를 얻어낸다.
Iterator<String> it = set1.iterator();
//반복문 돌면서
while(it.hasNext()) {
//아이템을 하나씩 불러내서 출력하기
String elem = it.next();
System.out.println(elem);
}
전체 코드
MainClass09.java
package test.main;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/*
* HashSet은 Set 인터페이스를 구현한 클래스이다.
*
* - 순서가 없다.
* - key 값도 없다.
* - 중복을 허용하지 않는다.
* - 어떤 데이터를 중복 없는 묶음(집합)으로 관리하고자 할 때 사용한다.
*/
public class MainClass09 {
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
//데이터 추가
set1.add("김구라");
set1.add("해골");
set1.add("원숭이");
set1.add("원숭이");//중복 불가
boolean result = set1.contains("해골"); //true
boolean isDelete = set1.remove("원숭이");//삭제를 시도하고 성공 여부를 리턴한다.
//반복문 객체를 얻어낸다.
Iterator<String> it = set1.iterator();
//반복문 돌면서
while(it.hasNext()) {
//아이템을 하나씩 불러내서 출력하기
String elem = it.next();
System.out.println(elem);
}
}
}
예제 2
로또번호 1~45 중의 숫자 중 랜덤하게 6개를 중복 없이 얻어내서 콘솔창에 출력하는 프로그래밍을 해보세요.
MainClass10.java
package test.main;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
public class MainClass10 {
public static void main(String[] args) {
/*
* 로또번호 1~45 중의 숫자 중 랜덤하게 6개를 중복 없이 얻어내서 콘솔창에 출력하는 프로그래밍을 해보세요.
*/
Random rand = new Random();
Set<Integer> set1 = new HashSet<>();
while(true) {
if(set1.size()==6) {
break;
}
else {
set1.add(rand.nextInt(45)+1);
}
}
Iterator<Integer> it = set1.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
예제 3
1. String type을 저장할 수 있는 ArrayList 객체 생성해서 참조값을 msgs 라는 지역 변수에 담아보세요.
List<String> msgs = new ArrayList<>();
2. msgs에 문자열 2개를 담아보세요.
msgs.add("hello");
msgs.add("Bye");
3. Map<String,Object> type을 저장할 수 있는 ArrayList 객체 생성해서 참조값을 maps라는 지역 변수에 담아보세요.
List<Map<String,Object>> maps = new ArrayList<>();
4. maps에 두 개의 Map 객체를 담아보세요. 각각의 Map 객체는 회원 한 명의 정보를 가지고 있으면 됩니다.
Map<String,Object> m1 = new HashMap<>();
Map<String,Object> m2 = new HashMap<>();
m1.put("num", 1);
m1.put("name", "김ㅇㅇ");
m1.put("addr", "광진구");
maps.add(m1);
m2.put("num", 2);
m2.put("name", "이ㅇㅇ");
m2.put("addr", "송파구");
maps.add(m2);
5. maps 가변 배열에 저장된 값을 이용해서 회원 목록을 아래와 같은 형식으로 반복문을 활용해서 출력되도록 해보세요.
번호 => 1, 이름 => 김구라, 주소 => 노량진
번호 => 2, 이름 => 해골, 주소 => 행신동
for(int i=0;i<maps.size();i++) {
System.out.println("번호 => "+maps.get(i).get("num")+", 이름=> "+maps.get(i).get("name")+", 주소=> "+maps.get(i).get("addr"));
}
전체 코드
MainClass11.java
package test.main;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/*
* List 는 javascript 에서 [ ]와 유사
* Map은 javascript 에서 { }와 유사
*
* List<String>은 javascript 에서 ["aaa", "bbb", "ccc", .. ]와 유사
* List<Integer>은 javascript 에서 [10, 20, 30, 40, ...]와 유사
* List<Map>은 javascript에서 [{}, {}, {}, ... ]와 유사
*/
public class MainClass11 {
public static void main(String[] args) {
//String type을 저장할 수 있는 ArrayList 객체 생성해서 참조값을 msgs 라는 지역 변수에 담아보세요.
List<String> msgs = new ArrayList<>();
//msgs에 아무거나 문자열 2개를 담아보세요.
msgs.add("hello");
msgs.add("Bye");
//Map<String,Object> type을 저장할 수 있는 ArrayList 객체 생성해서
//참조값을 maps라는 지역 변수에 담아보세요.
List<Map<String,Object>> maps = new ArrayList<>();
//maps에 두 개의 Map 객체를 담아보세요.
Map<String,Object> m1 = new HashMap<>();
Map<String,Object> m2 = new HashMap<>();
//각각의 Map 객체는 회원 한 명의 정보를 가지고 있으면 됩니다.
m1.put("num", 1);
m1.put("name", "김ㅇㅇ");
m1.put("addr", "광진구");
maps.add(m1);
m2.put("num", 2);
m2.put("name", "이ㅇㅇ");
m2.put("addr", "송파구");
maps.add(m2);
//maps 가변 배열에 저장된 값을 이용해서 회원 목록을 아래와 같은 형식으로
//반복문을 활용해서 출력되도록 해보세요.
/*
* 번호 => 1, 이름 => 김구라, 주소 => 노량진
* 번호 => 2, 이름 => 해골, 주소 => 행신동
* .
* .
* .
*/
for(int i=0;i<maps.size();i++) {
System.out.println("번호 => "+maps.get(i).get("num")+", 이름=> "+maps.get(i).get("name")+", 주소=> "+maps.get(i).get("addr"));
}
}
}
'development > Java' 카테고리의 다른 글
[Java] 예외처리 Exception / try-catch, throw(직접 예외 발생시키기), thread, Runtime Exception, Exception (0) | 2021.11.09 |
---|---|
[Java] DTO(Data Transfer Object) or VO(Value Object) /getter(), setter() (0) | 2021.11.09 |
[Java] Util Class #2 HashMap , 집합 Set, 반복자 Iterator (0) | 2021.11.09 |
[Java] Util Class #1 ArrayList (0) | 2021.11.08 |
[Java] 인터페이스 Interface / 함수형 인터페이스 FuntionalInterface, 람다식 (0) | 2021.11.08 |
- Total
- Today
- Yesterday
- brute force
- 자바
- append
- 파이썬
- jsp
- jQuery
- 정렬
- javascript
- 스프링
- html
- Django
- bootstrap
- Case When
- 큐
- web
- R
- python
- 장고
- 브루트 포스
- CSS
- 자바스크립트
- 단계별로풀어보기
- baekjoon
- 덱
- 문자열
- Oracle
- 고득점 키트
- Java
- 백준
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |