[1].전체 함수
package kr.or.ddit.basic.set;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class T05HashSetTest {
public static void main(String[] args) {
Set hs1 = new HashSet();
// Set 에 데이터를 추가할 떄에도 add() 사용한다.
hs1.add("DD");
hs1.add("AA");
hs1.add(2); //기본타입 데이터들을 객체로 만들어줌
hs1.add("CC");
hs1.add("BB");
hs1.add(1);
hs1.add(3);
System.out.println("Set 데이터 : " + hs1);
System.out.println();
// Set은 데이터 중복을 허용하지 않는다. 그래서 이미 존재하는 데이터를 또다시 추가현
// False를 반환하고, 데이터는 추가되지않는다.
boolean isAdded = hs1.add("FF");
System.out.println("중복 되지 않을 떄 " + isAdded);
System.out.println("Set 데이터 : " + hs1);
System.out.println();
isAdded = hs1.add("CC");
System.out.println("중복 될떄 : " + isAdded);
System.out.println("Set 데이터 : " + hs1);
System.out.println();
// Set의 데이터를 수정하려면 수정하는 메서드가 따로 존재하지 않기 떄문에
// 해당 데이터를 삭제후 새로운 데이터를 추가해 주면 된다.
// 데이터 삭제하기
// 1) Clear() => 모든 데이터 삭제
// 2) remove(삭제할 데이터) => 해당 데이터 삭제
// 'FF' 를 'EE'로 수정하기
hs1.remove("FF");
System.out.println("FF 삭제후 Set 데이터 : " + hs1);
System.out.println();
hs1.add("EE");
System.out.println("EE 추가 후 Set 데이터 : " + hs1);
System.out.println();
// hs1.clear(); //전체 데이터 삭제
// System.out.println("Clear() 후 Set 데이터 : " + hs1);
System.out.println("Set의 데이터 개수: " + hs1.size());
System.out.println();
// Set은 인덱스 개념이 존재하지 않기 떄문에 List처럼 인덱스로 데이터를 하나씩 불러올 수 없다.
// 그래서 데이터 접근하기 위해서 Iterator 객체를 사용해야 한다.
Iterator it = hs1.iterator(); //Iterator 반복자
// 데이터 개수만큼 반복하기
while(it.hasNext()) { //다음 데이터가 있는지 확인
System.out.println(it.next()); //다음 데이터 가져오기. , 데이터의 개수만큼 while문이 돌음
}
System.out.println();
// 1 ~ 100 사이의 중복되지 않는 점수 5개 만들기
Set<Integer> intRnd = new HashSet<Integer>();
while(intRnd.size() < 5) {
int num = (int) (Math.random() * 100 + 1);
intRnd.add(num);
}
System.out.println("생성된 난수들 : " + intRnd);
// Collection 유형의 객체들은 서로 다른 자료 구조로 쉽게 변경해서 사용할 수있다.
// 다른 유형의 객체를 생성할 떄 생성자에 해당 데이터를 넣어주면 된다.
List<Integer> intRndList = new ArrayList<Integer>(intRnd);
System.out.println("intRndList 데이터 출력");
for(Integer num : intRndList) {
System.out.print(num + " ");
}
System.out.println();
}
}
결과값
[2].데이터 추가하는 코드 (add)
public class T05HashSetTest {
public static void main(String[] args) {
Set hs1 = new HashSet();
// Set 에 데이터를 추가할 떄에도 add() 사용한다.
hs1.add("DD");
hs1.add("AA");
hs1.add(2); //기본타입 데이터들을 객체로 만들어줌
hs1.add("CC");
hs1.add("BB");
hs1.add(1);
hs1.add(3);
3. Set데이터 전체값 출력
System.out.println("Set 데이터 : " + hs1);
4. 중복 값 확인 출력
boolean isAdded = hs1.add("FF");
System.out.println("중복 되지 않을 떄 " + isAdded);
System.out.println("Set 데이터 : " + hs1);
isAdded = hs1.add("CC"); //CC값을 추가
System.out.println("중복 될떄 : " + isAdded);
System.out.println("Set 데이터 : " + hs1);
결과값
5. 전체 값 삭제문 출력
데이터 삭제하기
1) Clear() => 모든 데이터 삭제
2) remove(삭제할 데이터) => 해당 데이터 삭제
hs1.clear(); //전체 데이터 삭제
System.out.println("Clear() 후 Set 데이터 : " + hs1);
6. 수정후 삭제후 데이터 출력
// 'FF' 를 'EE'로 수정하기
hs1.remove("FF");
System.out.println("FF 삭제후 Set 데이터 : " + hs1);
System.out.println();
hs1.add("EE");
System.out.println("EE 추가 후 Set 데이터 : " + hs1);
System.out.println();
결과값
7.Set의 데이터 개수 확인
System.out.println("Set의 데이터 개수: " + hs1.size());
결과값
8. 반복문 사용하여 데이터 하나씩 불러오기
[1].Set은 인덱스 개념이 존재하지 않기 떄문에. List 처럼 인덱스로 데이터를 하나씩 불러올 수 없다.
[2].데이터 접근하기 위해서 Iterator 객체를 사용해야 한다.
Iterator it = hs1.iterator(); //Iterator 반복자
// 데이터 개수만큼 반복하기
while(it.hasNext()) { //다음 데이터가 있는지 확인
System.out.println(it.next()); //다음 데이터 가져오기. , 데이터의 개수만큼 while문이 돌음
}
결과값
9. 1 ~ 100 사이의 중복되지 않는 점수 5개 만들기
Set<Integer> intRnd = new HashSet<Integer>();
while(intRnd.size() < 5) {
int num = (int) (Math.random() * 100 + 1);
intRnd.add(num);
}
System.out.println("생성된 난수들 : " + intRnd);
결과값
10. 반복문 사용해 구조 변경
// Collection 유형의 객체들은 서로 다른 자료 구조로 쉽게 변경해서 사용할 수있다.
// 다른 유형의 객체를 생성할 떄 생성자에 해당 데이터를 넣어주면 된다.
List<Integer> intRndList = new ArrayList<Integer>(intRnd);
System.out.println("intRndList 데이터 출력");
for(Integer num : intRndList) {
System.out.print(num + " ");
}
System.out.println();
}
결과값
'자바 객체 지향 프로그래밍' 카테고리의 다른 글
Ex)T04ListSortTest Comparable , Comparator 차이 (0) | 2024.01.20 |
---|---|
[Collections.Sort] , [Shuffle] 사용법 + static 정리 Ex) TO03ListSortTest (0) | 2024.01.20 |
Stack , Queue 사용방법 + linkedlist , ArrayList 해석 Ex) T02LinkedListTest (0) | 2024.01.20 |
ArrayList [add , size , get , temp , remove ] 사용방법 Ex) T01 ArrayListTest (0) | 2024.01.19 |
24-01-19 객체 지향 프로그램 첫 교육 내용 (0) | 2024.01.19 |