본문 바로가기

Language/Java

JAVA - Loop(for, iterator, stream)

 

자바로 웹프로그래밍을 하다 보면 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