Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 연산자
- 기초
- 동적 문자열
- 조건문
- 변수
- 코딩
- comparator
- io
- oclick 동적
- enum
- 쓰레드
- 동적 버튼 생성
- 변수선언
- IBatis 게시판
- Thread
- iBatis
- 자바
- 객체지향
- Java
- Comparable
- 고급자바
- I/O
- 동적 버튼 onclick
- 계산기
- 동적 데이터
- 객체
- IBatis CRUD
- ListSort
- MAP
- 변수초기화
Archives
- Today
- Total
Jun's Blog
[Java] Set, Iterator 추가 삭제하기 본문
<List와 Set의 차이점>
1. List
- 입력한 데이터의 순서가 있다.
- 중복되는 데이터를 저장할 수 있다.
2. Set
- 입력한 데이터의 순서가 없다.
- 중복되는 데이터를 저장할 수 있다.
package kr.or.ddit.basic;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
/**
* - List와 Set의 차이점
*
* 1. List
* - 입력한 데이터의 순서가 있다.
* - 중복되는 데이터를 저장할 수 있다.
*
* 2. Set
* - 입력한 데이터의 순서가 없다
* - 중복되는 데이터를 저장할 수 있다.
*/
public class T06_SetTest {
public static void main(String[] args) {
Set hs1 = new HashSet();
//Set에 데이터를 추가할 때 add()메서드를 사용한다.
hs1.add("DD");
hs1.add("AA");
hs1.add(2); // his.add(new Integer(2)); 와 같다
hs1.add("CC");
hs1.add("BB");
hs1.add("1");
hs1.add("3");
System.out.println("Set 데이터 : " + hs1);
System.out.println();
//Set은 데이터의 순서가 없고, 중복을 허용하지 않는다.
//그래서 이미 있는 데이터를 add하면 false를 반환하고 데이터는 추가되지 않음.
boolean isAdd = hs1.add("FF");
System.out.println("중복되지 않을 때 : " + isAdd);
System.out.println("Set 데이터 : " + hs1);
System.out.println();
isAdd = hs1.add("CC");
System.out.println("중복 될 때 : " + isAdd);
System.out.println("Set 데이터 : " + hs1);
System.out.println();
// Set의 데아터를 수정하려면 수정하는 명령이 따로 없기 때문에 해당 자료를 삭제한 후 새로운 데이터를 추가해 주어야 한다.
//삭제하는 메서드
// 1) clear() => Set 데이터 전체 삭제
// 2) remove(삭제할 재료) => 해당 자료 삭제
// 얘) 'FF',''EE'로 수정
hs1.remove("FF");
System.out.println("삭제 후 데이터 : " + hs1);
System.out.println();
hs1.add("EE");
System.out.println("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로 처리해야 한다.
//Set의 데이터를 가져오기 위해 Iterator 객체를 얻어오기
// => Set의 Iterator() 메서드를 호출하면 된다
Iterator it = hs1.iterator();
//데이터 개수만큼 반복하기
// hasNext() 메서드 => 포인터 다음 위치에 데이터가 있으면 true, 없으면 false를 반환한다/
while(it.hasNext()) {
// next() 메서드 => 포인터를 다음 자료위치로 이동하고, 이동한 위치의 자료를 반환한다.
System.out.println(it.next());
}
System.out.println("향상된 for은 : ");
for(Object obj : hs1) {
System.out.println(" " + obj);
}
// 1 ~ 100사이의 중복되지 않는 정수 5개 만들기
Set<Integer> intRnd = new HashSet<>();
while(intRnd.size() < 5) { // Set의 데이터가 5개가 될 때까지..
int num =(int) (Math.random() * 100+1);
intRnd.add(num);
}
System.out.println("만들어진 난수들 : " + intRnd);
// Collection 유형의 객체들은 서로 다른 자료 구조로 쉽게 변경해서.
// 사용할 수 있다. 다른 종류의 객체를 생성할 때 생성자에 변경할 데이터를 넣어주면 된다.
List<Integer> intRndList = new ArrayList<>(intRnd);
System.out.println("List의 자료 출력 ... ");
for(int i = 0; i < intRndList.size(); i++) {
System.out.println(intRndList.get(i));
}
for(Integer num : intRndList) {
System.out.println(num + " ");
}
}
}
'High Java > Collection FrameWork' 카테고리의 다른 글
[Java] Map을 활용한 간단 예제 (0) | 2020.10.08 |
---|---|
[Java] Set을 이용한 야구 게임 프로그램 (0) | 2020.10.08 |
[Java] ListSort - 학생 관리 프로그램 (0) | 2020.09.26 |
[Java] ListSort (Comparable & Comparator) (0) | 2020.09.26 |
[Java] Stack & Queue (0) | 2020.09.26 |
Comments