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

이건우님의 프로필 이미지

작성한 질문수

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

직접 구현하는 배열 리스트3 - 기능 추가

add(int index, Object newValue)에서 루프 조건질문

작성

·

197

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
```java
public void add(Object e, int index) { if (size == elementData.length) { grow(); } for (int i = elementData.length - 1; i > index; i--) { elementData[i] = elementData[i - 1]; } elementData[index] = e; size++; }
```
for문 조건에서
for (int i = elementData.length - 1; i > index; i--)
i의 초기값을 배열의 길이로 주는 것보다는 현재 배열에 담고 있는 요소의 수인 (size-1)변수로 주는 것이 루프문의 범위를 줄이고 정말 미세한차이겠지만 조금 더 효율적이라고 생각하는데 혹시 (size-1)변수로 반복문 초기값을 설정했을 때 문제될 점이 있을까요??

답변 2

0

왜 효율적이라고 생각하시는거죠?배열의 크기가 10개로 늘어났을때 사이즈가 5개이면 나머지 5개의 index는 null이 들어가있을탠데요?

0

안녕하세요. 이건우님, 공식 서포터즈 David입니다.

size 대신 배열의 길이를 사용하는 것이 왜 조금 더 효율적이라고 생각하시는지 자세히 알려주실 수 있으실까요?

데이터 추가시 배열이 꽉차서 배열이 확장된 경우를 생각해 보시면 size를 사용할 때의 장점을 확인할 수 있습니다:)

감사합니다.

질문글은 length대신 size를 사용하는 것이 낫지 않냐라는 질문인 것 같은데, 저도 생각해보면 size를 활용하는게 더 효율적이라고는 생각이 들긴 하는데 순수한 elementData는 null이 들어있기 때문에.. 다만 너무 마이크로한 영역이라 신경쓸 정도인가 싶긴 하네요