인프런 커뮤니티 질문&답변

혜진님의 프로필 이미지
혜진

작성한 질문수

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

문제와 풀이1

List 생성할때

작성

·

45

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

안녕하세요!

문제와 풀이를 해보다 문득 궁금해졌는데,

혹시 ArrayList 생성할때

List<Integer> list = new ArrayList<>();
ArrayList<Integer> list = new ArrayList<>();

두개의 차이가 있을까요 ..?

 

 

답변 1

0

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

질문해주신 List<Integer> list = new ArrayList<>();ArrayList<Integer> list = new ArrayList<>(); 두 가지 선언의 차이에 대해 설명드리겠습니다.

  1. List list = new ArrayList<>();

    • 상위 타입 참조: 이 선언은 List라는 인터페이스 타입으로 ArrayList 객체를 참조합니다. 이는 코드의 유연성을 높이는 장점이 있습니다. 즉, 나중에 참조 변수 list가 다른 List의 구현체로 변경되어도 코드의 나머지 부분에서는 변경이 필요 없게 됩니다.
  2. ArrayList list = new ArrayList<>();

    • 구현 클래스 참조: 이 선언은 ArrayList의 구체적인 구현 클래스로 참조를 만듭니다. 이는 해당 객체가 ArrayList의 특성이나 메서드에 의존할 필요가 있는 경우 적합합니다.

가장 큰 차이는 유연성과 구체적인 구현체 사용에 대한 차이입니다. 일반적인 경우, 인터페이스 타입을 사용하여 선언하는 것이 더 좋은 실천 방법인 경우가 많습니다. 이는 변경에 유연하며 다른 List 구현체로 쉽게 변경할 수 있기 때문입니다.

이와 관련된 유사한 질문에 대한 답변을 몇 가지 링크로 공유드립니다:
- List와 ArrayList
- 컬렉션 필드에서 초기화 질문이 있습니다. (ArrayList 기본 사이즈 문제)
- List 초기 값 문의드립니다.

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

혜진님의 프로필 이미지
혜진

작성한 질문수

질문하기