Java에서 Map과 List를 순회하는 방법 (Loop, 반복문)

반복(iteration)

누구나 자바로 개발을 하면서 Map과 List를 매우 많이 사용해보셨을텐데요. 저의 경우 List 반복문은 쉽게 구현하지만, Map은 항상 다른 코드를 확인하고 코딩을 하곤 합니다. 자주 사용하지 않으니까 매번 잊어버리네요. 그래서 이번 기회에 간단히 정리해보았습니다.

Map의 iteration

Map의 반복문을 구현할 때 일반적인 방법과 Java8의 Lambda expression을 사용하는 방법이 있습니다. 아래 코드들은 모두 동일한 내용을 출력합니다.

// Loop a Map
Map<String, String>  cities = new HashMap<>();
cities.put("Tokyo", "Japan");
cities.put("Seoul", "Korea");
cities.put("Beijing", "China");
cities.put("Paris", "France");
cities.put("Washington", "USA");
cities.put("Brazilia", "Brazil");

// Normal ways
//1)
for (Map.Entry<String, String> entry : cities.entrySet()) {
    System.out.println("Cities: " + entry.getKey() + ", " + entry.getValue());
}

//2)
for (String key : cities.keySet()) {
    System.out.println("Cities: " + key + ", " + cities.get(key));
}

// Java8 forEach, Lambda
// 1)
cities.forEach((k, v) -> System.out.println("Cities: " + k + ", " + v));

// 2)
cities.forEach((k, v) -> {
    System.out.println("Cities: " + k + ", " + v);
});

결과

Cities: Beijing, China
Cities: Tokyo, Japan
Cities: Seoul, Korea
Cities: Brazilia, Brazil
Cities: Paris, France
Cities: Washington, USA
...

List의 iteration

List의 반복문을 구현할 때도 위와 같이 일반적인 방법과 Lambda를 사용하는 두가지 방법이 있습니다. 아래 코드들은 모두 동일한 내용을 출력합니다.

// Loop a List
List<String> fruits = new ArrayList<>();
fruits.add("banana");
fruits.add("apple");
fruits.add("peach");
fruits.add("lemon");
fruits.add("mango");

// Normal way
// 1)
for (String item : fruits) {
    System.out.println("Fruits: " + item);
}

// Java8 forEach, Lambda, Stream
// 1)
fruits.forEach(item -> System.out.println("Fruits: " + item));

// 2)
fruits.forEach(item -> {
    System.out.println("Fruits: " + item);
});

// 3)
fruits.stream()
    .forEach(item -> System.out.println("Fruits: " + item));

결과

Fruits: banana
Fruits: apple
Fruits: peach
Fruits: lemon
Fruits: mango
...
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha