일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- docker
- 백준
- 네트워크
- 회고
- programmers
- 시스템 해킹
- 리버싱
- Baekjoon
- 파이썬
- 보안
- 사이버보안
- spring Batch
- 프로그래머스
- cloud run
- sequelize
- 웹해킹
- gcp cloud build
- webhacking.kr
- 포너블
- gcp ci/cd
- hackctf
- kotest
- nodejs
- Batch
- 스프링 배치
- node.js
- pwnable.xyz
- 웹보안
- Python
- gcp
uju's Tech
[Java 8: forEach] HashMap 에 넣은 value를 반복문으로 가져오고싶다! 본문
<본 포스팅은 공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>
최근 개발을 하던 중 막히는 부분이 발생하였다. 자바 초짜로서 막혔던 부분을 포스팅 해보고자 한다.
HahMap<String, String> fileNameMap = HashMap<>();
fileNameMap 의 Key는 파일 생성된시간의 범위의 시작 시간. value는 파일 명으로 들어가는 map을 구현하였다.
구현해야 하는 내용이 생성됭있는 파일들을 wirte 해주기 위해 filenameMap의 key값을 알아서 file의 이름을 가져와야 하는 상황이었다.
들어올 수 있는 시간이 60분으로 제한되었으므로 00, 10, 20, 30, 40 , 50 최대 6가지 결과물이 나온다는 것을 알고있으나 if-esle문으로
이용하는 것은 코드가 간결하지 못할 뿐더러 동적으로 시간 처리 및 파일 생성 개수에 대한 처리가 불가능하다.
이를 어떻게 해결할 수 있을까?
이러한 경우 Java 8에 추가된 forEach문을 사용할 수 있을 것이라고 생각이된다.
기존의 for-1oop를 살펴보자.
for (String name: names){
system.out.println(name);
}
for (String name: names){
system.out.println(name);
}
forEach문을 사용하면
names.forEach(name -> {
System.out.println(name);
});
forEach문을 사용하면 다는 iterator은 필요가 없다. 더 편리하다고 생각되어 앞으로도 애용(?)할 것 같다.
forEach문이 나옴으로서 고민이 해결되었다.
fileNameMap.forEach((key, value) -> {
-------
});
iterator을 더 만들 필요가 없고 key혹은 value를 명시적으로 알 수 없어도 반복문을 사용할 수 있게 되었다.
'Programming > Java 이모저모' 카테고리의 다른 글
[JAVA: Enum] 서비스 마다 변수가 달라질 때? (0) | 2020.06.13 |
---|---|
[JAVA8:Fuctional interface] Map의 value로 method를 지정하고 싶다! (0) | 2020.06.13 |
[JAVA:casting]incompatible types error (0) | 2020.06.13 |