20220910 TIL 왜이리 잠이오는 것이냐
왜이리 잠이오는 것일까
잠을 충분히 잤건만
왜이리 잠이오는 것인가

정규 과정이 쉬는 동안에는 카페인 없이 살아보고 싶어서 충분히 잔다고 잤는데도
잠이 쏟아졌다.
그래서 자의반 타의반 조금 낮잠을 잤는데 매우 효과가 좋았다.
앞으로도 피곤하면 점심시간에는 잠이 잘 오는 노래를 틀어두고 좀 자면 좋을 것 같다.
그리고 주말에도 하나씩 푸는 게 감을 유지하는 데 좋을 것 같아서 오랜만에 프로그래머스 코딩문제를 풀어봤다.
오늘은 레벨1 중 가장 정답률이 낮은 것을 풀어봤다.
stream을 쓰면 코드가 더 깔끔해질 것 같지만 오늘은 일단 푼 것에 만족한다.
다음에 또 비슷한 방법이 필요하면 stream의 메소드들을 한 번 정주행하자.
+
아샬님 강의를 보다가 어제 액션플랜대로 예상대로 돌아가지 않는 현상을 발견해서 내부 원리를 확인해보았다.
자바에서 그냥 배열은 equals를 하면 주소값을 비교한다. (객체가 같은지 비교한다. 즉 ==를 사용한다.)
따라서 동일한 배열이 아니면 내부 값이 동일해도 equals를 하면 false가 나온다.
(String의 경우 ==와 equals가 서로 다른 결과를 도출하는 것은 String 클래스에서는 equals가 오버라이딩(재정의) 되어 있기 때문이다.)
그런데 List 타입은 equals메소드를 쓰면 두 객체가 동일한 객체가 아니어도 같은 내용물을 담고 있으면 true를 도출한다.
List.equals()는 배열의 길이가 같은지, 그리고 배열의 원소마다 element.equals()를 시행해서 true인지 확인한다.
따라서 두 List를 비교하는 방식을 바꿔주고 싶다면 그 리스트의 element클래스에 가서 equals()를 overriding해주면 된다.