MainClass14 (반복자 Iterator)
반복자 Iterator
Set 안에 있는 아이템들을 일렬로 세워서 한칸씩 내려가며 읽어오는 형태이다. 이전에 학습한데로 HashSet은 순서가 없기 때문에 랜덤으로 정렬된다. 콘솔창에 결과는 순서대로 나왔지만 순서를 보장할 수는 없는 것이다.
hasNext()
커서 다음에 아이템이 있는지 확인하고 있다면 true를 반환한다.
next()
다음칸으로 이동하며 해당 아이템을 읽어온다.
contains()
특정 item(데이터, 참조값) 존재 여부를 판단한다.
size()
저장된 item의 갯수를 반환한다.
remove()
특정 item 삭제한다.
clear()
모든 아이템 삭제한다.
MainClass15 (Random)
Random Class를 활용할때는 nextint를 자주 사용한다.
nextint()
지정한 범위 내에서 랜덤한 정수를 얻어낸다.
MainClass16 (HashSet Random Interator예제)
1번에서 HashSet 객체를 생성하고 변수에 담았다.
2번에서는 작성할 수 있는 방법이 여러가지이면 for문과 while문 둘 다 가능하다.
3번에서는 Iterator 객체를 생성하고 hasNext()와 next() 메소드를 활용했다.
hasNext()
커서 다음에 아이템이 있는지 확인하고 있다면 true를 반환한다.
next()
다음칸으로 이동하며 해당 아이템을 읽어온다.
예시에서 사용가능한 반복문
for (사용 불가) | while | while, break |
Random ran=new Random(); for (int i=0; i<6; i++) { int ranNum=ran.nextInt(45)+1; set.add(ranNum); } |
while(set.size() != 6) { int ranNum=ran.nextInt(45)+1; set.add(ranNum); } |
while(true) { int ranNum=ran.nextInt(45)+1; set.add(ranNum); if(set.size()==6) { break; } } |
while(set.size() < 6) { int ranNum=ran.nextInt(45)+1; set.add(ranNum); } |
while(true) { int ranNum=ran.nextInt(45)+1; set.add(ranNum); if(set.size() > 5) { break; } } |
하지만 for문을 사용하면 우연히 동일한 숫자가 나왔을때 하나만 저장되기 때문에 6개 미만의 숫자가 나올 수 있다. 예시에서 필자가 작성한 방법은 while의 두번째 방법과 동일하다.
'java' 카테고리의 다른 글
Step13_Exception (Exception 관리, RuntimeException, throw) (0) | 2022.08.02 |
---|---|
Step13_Exception (try catch문, Exception) (0) | 2022.08.02 |
Step12_UtilClass (while 반복문, break) (0) | 2022.08.01 |
Step12_UtilClass (HashMap, HashSet) (0) | 2022.08.01 |
Step12_UtilClass (ArrayList 활용 객체 배열, Member, MemberDto) (0) | 2022.08.01 |