묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
섹션 7. onlyHash
hashCode만 오버라이딩으로 재정의하면 해시코드는 같아지지만, 결국 equals비교 Object의 것을 사용해서 실패하게 된다고 하셨습니다.그런데 MemberOnlyHash 클래스에서 equals를 재정의를 했다고 가정했을 때, 어떻게 MemberOnlyHash로 갈 수 있는 건가요?오버라이딩 되어서 우선권을 갖고있는 건 알고있습니다.이해가 안 가는 부분을 어떻게 말을 해야 할 지 조금 복잡하지만... 1번 코드MyHashSetV2 set = new MyHashSetV2(10); NoEqualsOnlyHash m1 = new NoEqualsOnlyHash("A"); set.add(m1);1번 코드에서 set에서 add를 호출합니다. 2 코드public boolean add(Object value) { LinkedList<Object> bucket = buckets[hashIndex(value)]; if (bucket.contains(value)) { return false; }그리고 2번 코드에 들어가게 되고 3번 코드 public boolean add(MemberOnlyHash m1) { LinkedList<Object> bucket = buckets[0]; if (bucket.contains(m1)) { return false; }그러면 2번 코드가 실행되면 3번 코드처럼 되는 거라고 이해하고 있습니다. (hashIndex는 편의상 0이라고 하겠습니다.) 0번 인덱스에 있는 LinkedList <Object> 타입의 연결리스트가 나옵니다. 다음으로 if문으로 들어갑니다. 그리고 LinkedList <Object> 타입의 연결리스트(bucket)가(이) m1을 포함하는지 contains 메서드를 통해서 확인합니다. 여기서 질문입니다.질문 1 : MemberOnlyHash 타입의 m1과 비교를 하는데 bucket은 여전히 Object타입입니다. (Object)bucket이 contains를 사용하는데 bucket은 MemberOnlyHash 클래스가 오버라이딩 한 것을 어떻게 알고 찾아가는지 이해가 되지 않습니다.
-
미해결김영한의 실전 자바 - 중급 2편
섹션 7. 직접 구현하는 Set3
여기에서 hashCode의 값이 선생님과 다르게 출력되는데 잘못된 게 맞나요?문자 고유의 값이니까 같은 문자라면 어느 컴퓨터나 같은 hashCode가 출력되야 하는 게 맞는거죠??public class MyHashSetV2Main2 { public static void main(String[] args) { Member hi = new Member("hi"); Member jpa = new Member("JPA"); // 대문자 주의! Member java = new Member("java"); Member spring = new Member("spring"); System.out.println("hi.hashCode() = " + hi.hashCode()); System.out.println("jpa.hashCode() = " + jpa.hashCode()); System.out.println("java.hashCode() = " + java.hashCode()); System.out.println("spring.hashCode() = " + spring.hashCode()); MyHashSetV2 set = new MyHashSetV2(10); set.add(hi); // Member 타입의 인스턴스를 myHashSetV2에 넣음. set.add(jpa); set.add(java); set.add(spring); System.out.println("set = " + set); //검색 Member searchValue = new Member("JPA"); boolean result = set.contains(searchValue); System.out.println("hi.contains(" + searchValue + ") = " + result); } //출력 결과 hi.hashCode() = 3329 jpa.hashCode() = 73659 java.hashCode() = 3254818 spring.hashCode() = -895679987
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 연습문제 2번
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.기본생성자를 생성안하니까 오류가 뜨는데 강사님 강의에는 기본생성자를 생성안해도 오류가 안뜨더라구요 toString이 역할을 대신한건가요? 1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 중급 2편
linkedList는 deque 구현체입니까? 아니면 list 구현체입니까?
1. linkedList는 deque 구현체입니까? 아니면 list 구현체입니까?만일 LIst 구현체인것도 있고 Deque구현체인것도 있으면new LinkedList<>(); 했을때 부모로 덱과 리스트중 누구를 앞에 내세워야합니까?강의에서 linkedList보다 ArrayList가 더 빠르다 하셨는데 그럼 LinkedList 를 쓰는 자리에는 ArrayDeque를 쓰는게 일반적입니까?
-
해결됨김영한의 실전 자바 - 중급 2편
혹시 조건문에서 먼저 비교할 대상의 선점이 이유가 있나요?
[질문 내용]직접 구현하는 배열 리스트1 - 시작 8:25에서o를 중심으로if (o.equals(elementData[i])) { 조건문을 구현하셨는데, 저는 반대로if (elementData[i].equals(o)) {elementData[i]에서 동일한 결과문을 찾았습니다. 결과는 동일하지만, 순서에 우선순위가 있을까요?
-
미해결김영한의 실전 자바 - 중급 2편
직접구현하는 SET4 제네릭과 인터페이스 도입
왜 hashIndex에서 Object 로 매개변수를 받나요?제네릭인 E로 받는게 타입안정성측면에서 좋지않나요??
-
미해결김영한의 실전 자바 - 중급 2편
오탈자가 있는데
별거아닌데문제와 풀이3 - Stackyoubute.com 수업자료에 그대로 있어서요
-
해결됨코딩테스트 [ ALL IN ONE ]
VS Code 사용법
안녕하세요.훌륭한 강의 잘 듣고 있습니다. 코테가 처음이고, VS Code 또한 처음 사용하다보니Break point 찍는 지점, .py 생성 등 모든 것이 익숙치않고 헷갈리네요.코테 연습할 때 VS Code를 효율적으로 사용할 수 있는 방법에 대한 강의는 찍으실 생각 없으실까요?
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
data 매개변수 오류
removeHelper 함수에서 data는 잘못 작성된 것이니 매개변수에서 제외해도 좋다고 하셨는데제외 후 테스트하면 remove 부분의 removeHelper 함수에서 parentNode.getLeftSubTree is not a function 라는 오류가 뜨네요.제가 잘못 작성한 부분이 있을까봐 binaryTree.mjs, avlTree.mjs 모두 첨부해주신 파일로 복붙해서 테스트해도 같은 오류가 떠요어떤 부분이 잘못된걸까요?
-
미해결김영한의 실전 자바 - 중급 2편
굳이 out으로 안하고 해도 되지 않을까 싶어서요
[질문 내용]따로 Shuttle에 out 을 만들어서 T unit에 넣어서 sout으로 입력해 출력하는 것이 아니라public static <T extends BioUnit> void printV1(Shuttle<T> t) { t.showInfo(); } public static void printV2(Shuttle<? extends BioUnit> t) { t.showInfo(); }이렇게 출력해도 동일하지 않을까 싶어 여쭈어봅니다.
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 4. 직접 구현하는 연결 리스트 제네릭 도입
제네릭은 new를 하면 타입 이레이저 때문에 Object가 되어버려서 new를 할 수 없다고 하셨는데,Node<E> newNode = new Node<>(e);이것도 E부분이 Object로 변하니까 new 생성을 못하는 이거는 왜 가능한 건지 이해가 되지 않습니다 ㅠ public class MyLinkedListV3<E> { private Node<E> first; private int size = 0; public void add(E e) { Node<E> newNode = new Node<>(e); if (first == null) { first = newNode; } else { Node<E> lastNode = getLastNode(); lastNode.next = newNode; } size++; }
-
미해결김영한의 실전 자바 - 중급 2편
런타임 의존관계
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]배치프로세서가 컴파일 시점에서는 mylist 인터페이스 의존을 하고 런타임에 생성자 주입을 한다고 하는 데 main 함수도 결국 컴파일 되는 것 아닌가요? 배치프로세서가 유연해 지는 건 이해할 수 있는 데 런타임시점에서 의존성이 주입된다는 부분이 좀 잘 이해가 안갑니다.
-
미해결김영한의 실전 자바 - 중급 2편
컬렉션 프레임워크 - HashSet pdf 오타
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]7. 컬렉션 프레임워크 - HashSet pdf 6페이지 StringHashMain 클래스에 있는 CAPATICY -> CAPACITY로 수정이 필요할거같습니다!
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
RangeSearch002 의 singlelist.c 파일 중 질문 있습니다.
강사님 안녕하십니까. 양질의 수업을 제공해주셔서 잘 듣고 있습니다. 다름아니고 질문이 있어서 여쭙고자 게시글 남깁니다.다름아니고 RangeSearch002 프로젝트 중 singlelist.c 파일의 SearchByAgeRange 함수에서 아래와 같은 코드에서 이해가 되지 않는 점이 있습니다. """void** pNodePtrList = malloc(sizeof(void*) * cnt);""" 본 질문의 목적은 아래와 같습니다.ㅇ malloc을 할 때 왜 따로 타입캐스팅을 하지 않았는가? 검색해서 찾아봤을 때 malloc은 타입캐스팅을 해도 되고 안 해도 되지만 제가 한다면 (void *)malloc 으로 썼을 거 같으며, 디버깅했을 때 결과도 동일한 결과물을 제공하는 것으로 확인했습니다.혹시 잘못된 점이 있으면 따끔한 지적 부탁드리겠습니다. 감사합니다. 좋은하루 되십시오.
-
해결됨김영한의 실전 자바 - 중급 2편
4. 컬렉션 프레임워크 - LinkedList 오타 수정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 4 컬렉션 프레임워크 - LinkedList pdf 파일의 33 페이지 MyLinkedListV3.java 코드의 toString() 메서드에 반환이 MyLinkedListV1으로 되어있습니다. MyLinkedListV3으로 수정 해주시면 감사하겠습니다.
-
해결됨김영한의 실전 자바 - 중급 2편
컬렉션 프레임워크 - List pdf 오타
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.컬렉션 프레임워크 - List pdf 에 자바가 제공하는 배열 리스트와 연결 리스트 - 성능 비교 표 에 연결 리스트의 "뒤의 추가(삭제) 부분" O(n) ->O(1) 로 수정이 필요할 거 같습니다.
-
미해결김영한의 실전 자바 - 중급 2편
캐스팅 관련 질문 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.package generic.ex1; public class BoxMain2 { public static void main(String[] args) { ObjectBox integerBox = new ObjectBox(); integerBox.set(10); Integer integer = (Integer) integerBox.get(); //Object -> Integer 캐스팅 System.out.println("integer = " + integer); } }위 코드에서 integerBox.set(10);을 빼고 실행해봤는데 integerBox.get()은 null인 상태인데 classCastException이 터지지 않더라고요 null인 경우면 원래 classCastException이 터지지 않나요?
-
미해결김영한의 실전 자바 - 중급 2편
주석오류
package generic.ex1; public class BoxMain2String str = (String) stringBox.get(); //Object -> Integer 캐스팅===> //Object -> String 캐스팅 이 맞는 거겠죠?
-
미해결김영한의 실전 자바 - 중급 2편
record 타입 질문
record 타입은 실무에서 안쓰나요?? 궁금합니당
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
코딩테스트 10일정도 남았습니다..
코딩센세님.. 현재 10강까지 들었습니다.. 남은 10일동안 강의 다 듣고 그동안 문제 열심히 다 풀면싸피 합격할 수 있을까요..? 솔직히 떨어질 거 같아서 너무 슬픕니다... ... 흑흑