반복(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
- Java - 람다식(Lambda)과 함수형 인터페이스
- Java - 직렬화(Serialize), 역직렬화(Deserialize)
- Java - do while과 while의 차이점
- Java - List empty(null) 체크, 3가지 방법
- Java - ArrayList 초기화, 4가지 방법
- Java - HashSet.addAll()
- Java - HashSet.contains()
- Java - 2차원 배열 선언, 출력 방법
- Java - 리스트 정렬, 3가지 방법
- Java - HashSet 정렬, 3가지 방법
- Java - 리스트 (List, ArrayList)
- Java - 첫 글자만 대문자로 바꾸는 방법
- Java - hashCode(), 사용하는 이유? 구현 방법?
- Java8의 Stream reduce() 사용 방법 및 예제
- Java - filter, map, flatMap 사용 방법 및 예제
- Java - 2개의 Map 합치기 (merge, putAll)
- Java - ConcurrentModificationException 원인 및 해결 방법
- JUnit - @After와 @AfterClass의 차이점
- JUnit - @Before와 @BeforeClass의 차이점
- java와 javac의 차이점
- Java - 자바(JDK) 버전 확인 방법 (터미널, cmd 명령어)
- Java - java.util.Date를 java.sql.Date로 변환
- Java - 시스템 운영체제(OS) 정보 확인
- Java - 코드 실행 시간 측정
- Java - HashSet.retainAll() 사용 방법 및 예제
- Java - ArrayList.retainAll() 사용 방법 및 예제
- Java - ArrayList를 String으로 변환
- Java - float을 int로 변환
- Java - float을 String으로 변환
- Java - String을 boolean으로 변환
- Java - XML을 JSON으로 변환
- Java - ClassNotFoundException 발생 원인 및 해결 방법
- Java - private 생성자를 사용하는 이유
- Java - non-static method cannot be referenced from a static context
- Java - NoSuchMethodError 원인 및 해결 방법