728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Object Oriented Programming > Java Iterator
Java Iterator 클래스를 사용하면 컬렉션의 모든 요소를 반복할 수 있습니다. 다음은 간단한 예입니다.
import java.util.*;
public class Example{
public static void main(String []args){
ArrayList mylist = new ArrayList();
mylist.add("Hello");
mylist.add("Java");
mylist.add("4");
Iterator it = mylist.iterator();
while(it.hasNext()){
Object element = it.next();
System.out.println((String)element);
}
}
}
이 문제에서는 func 메서드를 완료해야 합니다. 이 메서드는 ArrayList를 입력으로 사용합니다. 그 ArrayList에는 하나 이상의 정수가 있고 특수 문자열 "###"이 있고 그 뒤에 하나 이상의 다른 문자열이 있습니다. 샘플 ArrayList는 다음과 같습니다.
element[0]=>42
element[1]=>10
element[2]=>"###"
element[3]=>"Hello"
element[4]=>"Java"
코드가 특수 문자열 "###" 뒤에 오는 요소만 인쇄하도록 최대 2줄을 편집하여 func 메서드를 수정해야 합니다. 위 샘플의 경우 출력은 다음과 같습니다.
Hello
Java
Note : 표준 입력에는 "###" 문자열이 포함되어 있지 않으며 기본 메서드에 추가됩니다.
편집기에서 원래 코드를 복원하려면 편집기에서 왼쪽 상단 아이콘을 클릭하고 새 버퍼를 만듭니다.
Code
import java.util.*;
public class Main{
static Iterator func(ArrayList mylist){
Iterator it=mylist.iterator();
while(it.hasNext()){
Object element = it.next(); // ~~~Complete this line~~~
//Hints: use instanceof operator
if(element instanceof String) // ~~~Complete this line~~~
break;
}
return it;
}
@SuppressWarnings({ "unchecked" })
public static void main(String []args){
ArrayList mylist = new ArrayList();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
for(int i = 0;i<n;i++){
mylist.add(sc.nextInt());
}
mylist.add("###");
for(int i=0;i<m;i++){
mylist.add(sc.next());
}
Iterator it=func(mylist);
while(it.hasNext()){
Object element = it.next();
System.out.println((String)element);
}
}
}
Iterator
컬렉션(Collection) 객체의 요소를 순회하고 접근하는 데 사용되는 인터페이스.
리스트(List), 집합(Set), 맵(Map) 등과 같은 컬렉션에서 사용.
컬렉션의 내용을 읽을 때 데이터에 대한 구체적인 구현을 신경 쓰지 않고도 순회 가능.
Iterator 주요 메서드
1. hasNext() : 다음 요소가 존재하는지 여부를 확인하는 메서드. 'true' 또는 'false' 반환.
2. next() : 다음 요소를 반환하고, 커서를 다음 요소로 이동. 반환 값은 Object 형식이므로 해당 요소를 형변환하여 사용.
3. remove() : 현재 가리키고 있는 요소를 삭제. 이 메서드는 필수가 아니며, 모든 컬렉션에서 지원하지는 않음.
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
[해커랭크(HackerRank) JAVA 풀이] - Java Exception Handling (1) | 2023.11.02 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java Exception Handling (Try-catch) (0) | 2023.11.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java Instanceof keyword (0) | 2023.10.30 |
[해커랭크(HackerRank) JAVA 풀이] - Java Method Overriding 2 (Super Keyword) (0) | 2023.10.27 |
[해커랭크(HackerRank) JAVA 풀이] - Java Method Overriding (0) | 2023.10.26 |