자바로 웹프로그래밍을 하다 보면 Map에 값 저장 후 그 값들을 반복문을 통해 읽어오는 경우가 많을 것이다.
이는 여러가지 방법이 존재하는데 한번 정리해보고자 한다.
Map<String, String> maps = new HashMap<String, String>();
maps.put("key1", "value1");
maps.put("key2", "value2");
maps.put("key3", "value3");
// 1. For 문 사용
// key들을 불러와 key와 value 출력
for ( String key : maps.keySet() ) {
System.out.println("key : " + key + " value : " + maps.get(key));
}
// 2. Iterator 사용
// key들을 불러와 key와 value 출력
Iterator<String> keys = maps.keySet().iterator();
while ( keys.hasNext() ) {
String key = keys.next();
System.out.println("key : " + key + " value : " + map.get(key));
}
// 3. Stream 사용
// key들을 불러와 key와 value 출력
maps.keySet().stream()
.forEach(key -> System.out.println("key : " + key + " value : " + maps.get(key));
다양한 방법이 있다.
각자 장단점이 있지만 내 생각엔 그냥 편한거 쓰는게 좋다. 하지만 여러가지를 다양하게 쓸줄알고 활용하는게 중요한 것 같다.
Iterator
사용 : 반복문에 사용
활용 : 객체를 Iterator 객체에 담고 Iterator의 메서드들을 통해 반복적으로 사용
메서드 :
- hasNext() : 처리할 객체가 남았는지 확인
(return type : boolean)
- next() : 객체 불러옴
(return type : Object)
- remove() : 해당 객체 삭제
(return type : void)
Stream
사용 : 반복문에 사용
활용 : 스트림 생성 - 가공 - 결과
ex) 객체Map.stream().forEach().filter().sum()
1. 스트림 생성
- stream()
2. 가공
- Filtering(요소를 하나씩 평가해 걸러냄, 필터링에 해당되는 것만 다음으로 전달)
- filter(요소 -> 요소 필터링)
- Maping(요소들을 특정 값으로 매핑)
- map(객체클래스명::클래스메서드)
- map(객체클래스명 -> 클래스메서드)
- Sorting(정렬)
- sorted(), 오름차순(default)
- Iterating(각각의 요소에 특정 작업, 결과에 영향 x)
- peak()
- forEach()
3. 결과
- Calculating(계산하여 반환)
- sum()
- count()
- Collection(종합해서 반환)
- collect(Collector.toList())
그 밖에도 Stream은 관련해서 여러가지 메서드가 있으니 참고해서 사용하자.
'Language > Java' 카테고리의 다른 글
Jar 파일 만들고 사용해보자 (0) | 2023.10.09 |
---|---|
완전탐색 재귀호출에서 전역필드에 값 추가 (0) | 2023.06.09 |
JAVA - BASIC (0) | 2023.05.18 |
JAVA - Grammar (0) | 2023.05.03 |
JAVA - Map(HashMap, LinkedHashMap) (0) | 2023.03.23 |