본문 바로가기

Back-End/Java17

List객체를 toString()하게 되면 일어나는 일 https://thiswooin.tistory.com/9 TIL 230522 : toString()은 대괄호를 포함한 배열인 척하는 문자열이었다.향상된 for문으로 전체 출력을 해보려 했다. 오류 발생. for-each문에서는 배열이나 Iterable이 필요하다는 뜻 같다. 배열이 맞지않나?라는 생각으로 두가지로 출력해봤다. 배열 모양이 맞는 것 같았thiswooin.tistory.com지극히 자바에 아무것도 모르던 시절, 아무것도 모른채로 toString()에 대해 멋대로 해석한 포스팅을 우연히 다시보게 되고,다시 알게된 지식을 추가한 이 포스팅으로 Override하고자 합니다.Object클래스의 toString() 메소드자바에서는 어떤 클래스를 생성하든지 가장 상단에 Object클래스를 자동으로 상속.. 2024. 9. 4.
HashSet에 hashCode() 재정의 없이도 중복제거가 가능할까 결록적으로 중복제거는 된다.하지만, 그렇게 되면 Hash의 장점은 없이 LinkedList처럼 된다.해쉬 충돌을 피하게 해줘야하는 이유와 비슷하다.equals()를 재정의했다면 hashCode()도 같이 해주자. 코딩테스트 문제를 풀기 위해 자체 클래스 Path를 생성했다.이 Path들의 객체를 중복없이 모은다음 개수를 리턴하기 위해 Set를 생성했고,이를 위해 출발값과 도착값이 같으면 같은 객체로 인식하기 위한 일련의 과정을 정리했다. 0. 코드설명Path 클래스필드 : int[] from, int[] to생성자 : 두 필드에 입력값을 받는 생성자만 존재 (from, to 에 null값이 존재하면 안되도록)             큰 값이 from에 오도록 정렬하여 생성. (방향만 다른 경우를 만들지 않.. 2024. 7. 22.
TIL 230712 : 자바의 람다식 짚고 넘어가기(2) 메소드 참조 https://thiswooin.tistory.com/50 TIL 230711 : 자바의 람다식 짚고 넘어가기. 조금은 머쓱한 얘기지만 자바의 기본 문법을 배울 때 잘 이해되지 않고 다른 것들에 밀려 유보해두었던 람다와 스트림에 대해 다시 한 번 공부를 해서 개념을 짚고 넘어가보려 합니다. 강의를 thiswooin.tistory.com 지난 시간 이어서 메소드 참조에 대해서도 정리해보려 한다. 메소드 참조 Page responseDtoList = products.map(ProductResponseDto::new); 위 코드에서 맨마지막 부분이 의문이었다. 모던자바 문법 중 하나로 메소드 참조라는 문법이다. 예시 (left, right) -> Math.max(left,right); 위와 같은 람다식에서 M.. 2023. 7. 13.
TIL 230711 : 자바의 람다식 짚고 넘어가기. 조금은 머쓱한 얘기지만 자바의 기본 문법을 배울 때 잘 이해되지 않고 다른 것들에 밀려 유보해두었던 람다와 스트림에 대해 다시 한 번 공부를 해서 개념을 짚고 넘어가보려 합니다. 강의를 들으며 이해가 안 됐던 코드 두가지가 있다. Product product = productRepository.findById(id).orElseThrow(()-> new NullPointerException("해당 상품은 존재하지 않습니다.") ); Page responseDtoList = products.map(ProductResponseDto::new); 바로, 람다식 그리고 메서드 참조이다. 람다식 람다식은 우선 코드를 간편하게 해주기 위해 태어난 것이다. 반대로 말하면 위의 람다식을 이용한 코드를 람다식이 없을 때.. 2023. 7. 12.
TIL 230614 : 실행은 같아도 코드는 다르다. 튜터님의 코드로부터 배운 보고 배운 점 : 같은 기능을 구현해도 코드는 너무 다르다. 오랜시간 축적된 지혜를 잘 흡수해야할 듯 하다. 오늘은 그저 강의 들으며 배운 것들 다음에 내가 적용하기 위해 정리해본다. 삼항연산자 활용 Long maxId = memoList.size() > 0 ? Collections.max(memoList.keySet()) + 1 : 1; 삼항연산자라는 걸 완전히 잊고 있다가 강의 도중 만났는 데, 다시 보이게 된다. 만약 저걸 안했더라면 아래처럼 코드를 했을 것이다. Long maxId = 0; if(memoList.size() > 0){ maxId = Collections.max(memoList.keySet()) + 1; } else { maxId = 1; } Map -> L.. 2023. 6. 19.
TIL 230612 : 날짜 시간 데이터와 인사하기. (2. SimpleDateFormat) 1. Calendar, Date (지난 포스팅) 2. SimpleDateFormat 참고 링크 https://ho-log.tistory.com/98 https://bangu4.tistory.com/200 https://blogdeveloperspot.blogspot.com/2018/12/java-localdatetimenow-format.html 추가링크 https://sujl95.tistory.com/85 Inctance vs LocalDateTime https://www.daleseo.com/java8-zoned-date-time/ ZonedTimeDate https://covenant.tistory.com/255 총정리 2. SimpleDateFormat SimpleDateFormat 클래스는 날짜.. 2023. 6. 12.