티스토리 뷰
int [] score = {4, 1, 2, 2, 4, 4, 4, 4, 1, 2, 4, 2};
(정보가 모자란 일기성 글이에요)
이런 배열이 있었는데 아래처럼 변환해서 정리하고 싶었다.
숫자 종류가 일정한거보면 map으로 정리하는게 편해보인다.
그럼 맵에다가 value가 0인 key를 4개 넣은 다음, if문으로 체크해서 value+1을 해줘야 한다.
좀 더 편한게 없나 싶어서 찾아보니 map에 merge라는 API가 있었다.
얘는 get으로 체크할 필요도 없고, 알아서 key 탐색과 value 계산을 한줄로 처리할 수 있더라.
여튼 value 연산을 조금 더 편하게 할 수 있었다.
다음에 쓸 일 있으면 또 쓸 수 있겠지?
여튼 이걸 써보면서 답답했던게 뭐냐면
아니 진짜 뭘 넣을지 도저히 모르겠더라.
찾아보니 람다식을 넣어주면 된다더라.
scrMap.merge(num,1, (v1,v2) -> v1+1); // 이렇게 쓰거나
scrMap.merge(num,1, Integer::sum); // 요렇게 써도 값은 같다
이렇게 써도 결과는 똑같이 나온다.
v1 == key, v2 == value 라고 알아 먹는것 같다.
한 동안 사용방법을 몰라서 chatgpt에게 물어봤더니
사과는 잘함
똑같은 소리만 반복하다가 나중엔 API 끌고와서 딴소리를 하더라.
근데 지금 보니까 저 형태 자체는 맞는데 설명이 2% 모자랐던듯. 사과하니까 저게 맞는지 틀린건지 알 수가 없더라.
아무튼 람다식이니, 함수형 인터페이스다 뭐다 하는것들은 JDK8 에 새로 추가된 것인데
이 이후로 코드이해에 더욱 애를 먹는것 같다
간결하다고는 하는데 간결하기만 하지 아무리봐도 직관성은 x박은 느낌이랄까?
예전에 배워놓은 낡아빠진 지식으론 답이 없는것 같아서, 어떻게 공부해야될지 더 모르겠다.
일단 대충 헤딩하고 이해하게 되면 더 자세히 남겨놔야지
- Total
- Today
- Yesterday
- 인텔리제이 멀티커서
- 기계식키보드
- 믹틀란
- gradle
- 복붙 이력
- 클립보드 대체
- 지온웍스
- 복붙 쉽게
- maven
- JavaFX
- 키보드 윤활
- 복붙 히스토리
- Ditto프로그램
- 기계식키보드 윤활
- 스위치 윤활
- 커스텀키보드
- 기계식키보드 스위치
- geonworks
- java
- IntelliJ
- 윈도우 클립보드
- 프로젝트 환경 구축
- 인텔리제이 메이븐
- 윈도우 단축키
- 탭 전환 단축키
- 인텔리제이 커서 여러개
- intellij 같은 단어 선택
- 기계식 윤활
- hmx 랩터
- 단축키
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |