티스토리 뷰
아래와 같은 배열에서 각 요소의 건 수를 카운트해서 출력해 보자.
["손오공", "사오정", "토마토", "손오공", "저팔계", "삼장법사", "손오공", "저팔계"]
물론 for문과 if문을 사용하기 말고 해야한다면....?
아래 2가지 방법을 소개했다.
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public class Hash01 {
public static void main(String[] args) {
String[] participant = {"손오공", "사오정", "토마토", "손오공", "저팔계", "삼장법사", "손오공", "저팔계"};
Map<String, Long> participantMap = Arrays.asList(participant).stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
participantMap.forEach((key, value) -> System.out.println("key : "+ key + ", value : "+ value));
System.out.println("==========");
HashMap<String, Integer> hm = new HashMap<>();
for(String player : participant) hm.put(player, hm.getOrDefault(player, 0) +1);
hm.forEach((key, value) -> System.out.println("key : "+ key + ", value : "+ value));
}
}
1. 스트림을 이용해서 건 수를 체크해서 맵에 담았다.
2. 맵에서 1.8 버전 부터 지원하는 getOrDefault를 함수를 사용했다.
- 한땐, null 여부를 체크해서 값을 셋팅해줬는데
역시 코딩은 계속 해야한다.
'개발' 카테고리의 다른 글
Mac 에 MongoDB 설치하기 (0) | 2020.04.22 |
---|---|
Toy Project - 라즈베리카메라로 영상취득 후 번호 맞추기 01. 환경 구성 (0) | 2018.10.18 |
Install mysql on MAC OS. (0) | 2018.01.16 |
Docker 시작하기 (0) | 2017.10.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jupyter lab
- jqzip
- backup
- HashMap.getOrDefault
- vscode
- elasticsearch
- python의 Reflection
- sorted
- jqgrid
- Restore
- Lodash
- pip freeze #패쇄망 #wheel
- redmine plugin
- 호스트와 시간맞추기
- covid19
- bootrap
- anaconda env
- docker
- conda init
- virturalenv
- Selenium
- pyenv
- importlib
- 동적클래스생성
- gitlab
- inspect.py
- __code__
- MAC
- selenium #chromedriver
- zsh
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함