🌱 오늘의 주제 : Map 컬렉션, List 컬렉션 - Iterator 반복문 사용법
🌱 List 컬렉션 - Iterator 사용법
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("grape");
// 2. Iterator 사용하기 - 순회해달라고 하기 위해..
Iterator<String> iter = fruits.iterator();
while (iter.hasNext()) {
String fruit = iter.next(); // next()를 호출할 때마다 다음칸을 계속 가리키기 때문에 반복문에서 반드시 한개만 수행해 함!!!!!!!! // 항상 변수에 담아랏.
System.out.println(fruit);
// b로 시작하는 과일 제거
if (fruit.startsWith("b")) {
iter.remove(); // 리스트에서 직접 삭제가 아니고, 반드시 liter의 remove로 삭제해야 한다.!!!! 왜냐하면 liter가 순회 관리를 하고 있기 때문. // 안전하게 삭제 방법.
}
}
System.out.println(fruits);
- Iterator<String> iter = fruits.iterator();
- 여기서 liter는 Iterator변수명, fruits는 ArrayList 변수명.
- 추가적으로 list는 index가 있기 때문에, 다른 반복문 (for문 가능) + 향산된 for문 가능.
🌱 Map 컬렉션 - Iterator 사용법
Map<String, Character> name = new HashMap<>();
name.put("유재석", 'X'); // character -> ' ' 로 함.
name.put("박나래", 'X');
name.put("이지은", 'X');
name.put("서장훈", 'X');
name.put("이광수", 'X');
System.out.println(name);
// Set<String> keys = name.keySet();
// Iterator<String> iter = keys.iterator();
Iterator<String> iter = name.keySet().iterator();
while (iter.hasNext()) {
String yessName = iter.next(); // key // 이름들이 하나씩 나옴.
if (yessName.startsWith("이")){
name.put(yessName, 'O');
}
}
System.out.println(name);
- Map 컬렉션의 저장된 전체 객체를 대상으로 하나씩 얻고 싶을 경우 Iterator 이용.
- keyset( ) 메소드로 모든 키를 Set컬렉션으로 얻은 후, 반복자를 통해 키를 하나씩 얻고 get ( ) 메소드를 통해 값을 얻는다.
- 참고로 Set 컬렉션은 index가 없다. 그래서 for문 사용 불가.
< keyset( ) 메소드로 모든 키를 Set컬렉션으로 얻은 후, Iterator에 대입! >
Set<String> keys = name.keySet();
Iterator<String> iter = keys.iterator();
--------------------------------------------
< 위에 두개를 하나로 합친 것>
Iterator<String> iter = name.keySet().iterator();
'Java' 카테고리의 다른 글
Java - 생성자 (0) | 2023.01.24 |
---|---|
Java - 객체를 문자로 표현하는 toString() 사용하기 (0) | 2023.01.20 |
Java - 참조형 매개변수 (0) | 2023.01.18 |
Java - 기본형 매개변수 (0) | 2023.01.18 |
Java - 기본 자료형 vs 객체(참조) 자료형 (0) | 2023.01.13 |