- 변수 대소문?
대소문자 차이가 아닌
Wrapper class type은 class 객체로 구문한다 그렇기에 값에 null을 넣을 수 있다
Wraooer class type을 사용을 권장하는 이유는
long은 값이 없으면 0으로 Long은 값이 없다면 null이 들어가지만
데이터베이스에서는 0도 값으로 치기 때문에 이런 상황을 대비해 null을 넣기위해 Long 사용을 권장한다
- Map을 for문에 ?
Map안에 저장된 정보중 원하는 부분만 출력하는 방법입니다
Map의 사용법을 배움과 동시에 접근이 어떻게 이루어지는지 알 수 있습니다
객체를 가져오고 그 객체안에 있는 StudentName 을 가져온다
이렇게도 사용할 수 있다 for문을 사용하여 key값을 대입하면서 key값 객체의 toString()을 실행한다
- Map에 저장된 객체의 필드값이 같은지 확인하고 싶을 때
먼저 DTO객체 와 DTO2객체 안의 필드 값을 동일하게 입력했습니다
이후 사진과 같이 studentDTO .equals (studnetDTO2)); 로 객체의 필드 값이 같은지 확인했을 때는
false가 나오는데 각 객체 안에 있는 필드 Id 를 비교하면 true가 나오는 것을 확인 할 수 있습니다
이렇게 필드를 다 작석해 하나씩 비교하는 방법도 있지만 비효율 적이기 때문에
메소드를 이용하여 한번에 확인하는 방법을 알아보겠습니다
DTO에 hashCode() 메소드와 equals()메소드를 만들어줍니다
아직은 비교 메소드가 어떻게 진행되는지 잘 모르기 때문에 나중에 알게되면 다시 수정하겠습니다
일단은 이렇게하면 비교를 쉽게 할 수 있다는 것만 알아두고 넘어갈게요
다시 Main
이제 다시 Main으로 넘어와서
studentDTO .equals (studnetDTO2)); 를 출력해보면 true가 나오는것을 확인할 수 있습니다
- 만들어보기 _ 작성자로 글검색
작성자에게 검색할 작성자명을 입력받고 출력해주는 메소드 만들기
BoardDTO 타입의 객체들을 저장하고 있는 HashMap인 bRepository에서 작성자 이름이 useach와 일치하는 게시글들을 찾아서 List 형태로 반환하는 메소드입니다.
ArrayList를 생성하고 bRepository의 keySet을 모두 저장합니다.
keySet을 naturalOrder에 따라 정렬합니다. 이렇게 하면 bRepository의 키들이 순서대로 keyset 리스트에 저장됩니다.
그 다음, for-each 루프를 통해 keyset 리스트에 저장된 키들을 하나씩 가져와서 bRepository에서 해당하는 BoardDTO 객체를 가져옵니다.
그리고 해당 객체의 작성자 이름이 useach와 일치하는지 검사한 후, 일치하면 그 객체를 ArrayList b에 추가합니다.
마지막으로 ArrayList b 를 반환합니다
- 만들어보기_읽기(findbyid)
Map 사용과 이해를 많이 알 수 있게 해준 메소드입니다
'나의 수업일지' 카테고리의 다른 글
인천 일보 아카데미 18일차 Map으로 수정하기 (1) | 2023.03.18 |
---|---|
인천 일보 아카데미 17일차 코드리딩/리팩토링/Map으로 만들어보기 (0) | 2023.03.16 |
인천 일보 아카데미 15일차_2 Map을 알아보자 (0) | 2023.03.14 |
인천 일보 아카데미 15일차_1 .gitignore만들기 (0) | 2023.03.14 |
인천 일보 아카데미 14일차 git_github ? -2 (0) | 2023.03.13 |