inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 중급 2편

직접 구현하는 배열 리스트5 - 제네릭2

배열리스트5-제네릭2

85

ghuhan18

작성한 질문수 121

0

만약 제가 reverse 함수를 구현한다고 하면 tempValue 를 제네릭 E 로 구현해야하나요 ? 아니면 아래와 같이 구현해도 전혀 문제가 없나요 ?

public void reverse() {
    if( elementData == null || size <=1 ){
        return ;
    }
    
    for (int i = 0 ; i < (int)( size / 2 )  ; i++){ 
        Object tempValue = elementData[i] ;
        elementData[i] = elementData[size-1-i] ;
        elementData[size-1-i] = tempValue ; 
    }

}ㅁ

java 객체지향 코딩-테스트 알고리즘

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. ghuhan18님.

질문 주신 reverse 메서드의 구현에 있어서, 제네릭 E를 사용하거나, Object를 사용하는 방식 모두 올바릅니다. 다만, 제네릭의 타입 안정성을 고려했을 때는 E를 사용하는 것이 더 적합합니다.

기존 방식은 아래와 같이도 표현 가능합니다:

public void reverse() {
    if (elementData == null || size <= 1) {
        return;
    }

    for (int i = 0; i < (size / 2); i++) {
        @SuppressWarnings("unchecked")
        E tempValue = (E) elementData[i];
        elementData[i] = elementData[size - 1 - i];
        elementData[size - 1 - i] = tempValue;
    }
}

위의 코드에서는 E 타입으로 캐스팅하는 방식이 사용되며, 주석을 추가해 타입 경고를 억제합니다.

관련된 토론 링크를 통해 자세한 설명을 확인할 수 있습니다:
- LinkedList 구현 시 질문 - 제네릭 타입 변환 과정에 대한 설명
- 교안에 잘못된 부분이 있는 것 같습니다 - 제네릭 관련 추가 정보
- 섹션 3. ArrayList - 제네릭2 - 제네릭 사용 방법에 대한 질문

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

제네릭 타입 매개변수 제한과 관련한 문의입니다.

0

80

3

강의가 좀 버겁다 느껴질 때 학습방법 문의

1

135

4

제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T

0

62

1

new T()가 안 되는 니유

0

102

1

안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.

0

98

2

자바 로드맵 선택 질문

0

111

2

실전 자바 중급 - 2편 후 추천 강의

0

176

2

실프로젝트에서 Java25버전 사용

0

121

1

Arrays.sort

0

68

1

블로그 작성 시, 저작권 문제에 대하여

0

166

1

중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.

0

94

3

pop()과 poll()의 차이

0

94

1

특정 index의 노드 조회하기 질문

0

66

2

List.of() 비어있는 불변 리스트 생성

0

81

2

문제2: 개 타입 반환

0

56

2

[리뷰] 중급2편까지 겨우 완강 했습니다.

0

114

2

문제와 풀이1 Ex2와 Ex3

0

65

2

노드 삭제시 노드 null값으로 초기화

0

77

2

강의영상에 대한 질문

0

57

1

타입 매개변수 제한

0

59

1

compareTo

0

68

1

직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다

0

99

3

섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨

0

70

2

퀴즈 오류 관련 문의

0

109

1