컬렉션을 순차적으로 검색할 때에는 Iterator<E> 인터페이스를 사용하면 유용하다
단, Iterator 인터페이스를 사용할 때에는 컬렉션의 <E> 매개 변수와 동일한 타입을 지정해야한다.
Iterator 객체 생성 예제
Vector<Integer> ex = new Vector<Integer>(); //벡터 생성
ex.add(1);
ex.add(2);
ex.add(3);
Iterator<Integer> iex = ex.iterator(); //검색할 객체 리턴
int exSum=0;
while(iex.hasNext()) {
int n = iex.next();
exSum+=n;
}
System.out.println(exSum);
키를 통해 값을 찾아야하는 상황에는 HashMap<K,V> 컬렉션을 사용한다.
다른 컬렉션과는 달리 인덱스를 이용한 접근이 불가능하며, 키값을 검색해야만 알수 있다.
해시맵에서의 전체 검색은 다음과 같이 한다.
HashMap<String, String> dic = new HashMap<String, String>();
dic.put("baby","아기");
dic.put("love","사랑");
dic.put("apple","사과");
Set<String> keys = dic.keySet();
Iterator<String> it = keys.iterator();
while (it.hasNext()) {
String key = it.next();
String value = dic.get(key);
System.out.print("(" + key + "," + value + ")");
}
keySet() 메소드로 Set 컬렉션 객체로 만들어 리턴
검색 가능하게 Iterator 인터페이스를 사용하여 리턴
값이있으면 키값을 key 변수에 next()메소드를 사용하여 키값 리턴
get() 메소드를 통해 값을 가져온다.
HashMap 사용 예제
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 2; i++) {
System.out.print("찾고 싶은 단어 검색 >> ");
String eng = scanner.next();
String kor = dic.get(eng);
if (kor == null) {
System.out.println(eng + "없는 단어입니다");
} else {
System.out.println(kor);
}
}
위와 같이 해시맵을 사용하여 키값을 통해 값을 가져오는 방법을 구현할 수 있다.
'IT관련 > 자바' 카테고리의 다른 글
자바(JAVA) - 다형성 관련 (0) | 2020.04.29 |
---|---|
자바(JAVA) - String 비교 equals(), String pool (0) | 2020.04.28 |
자바(JAV A) - 컬렉션과 제네릭 사용 (0) | 2020.04.01 |
자바(JAVA) - 컬렉션과 제네릭 (0) | 2020.03.30 |
이클립스 사용시 자주 사용하는 단축키 모음 정리 (0) | 2020.03.26 |