작성
·
116
·
수정됨
0
public Object set(int index, Object element) {
Object oldValue = get(index);
elementData[index] = element; return oldValue; }
public void add(Object e) { elementData[size] = e;
size++; }
System.out.println(list.size()); 3
System.out.println(list.set(3, "r"));
System.out.println(list);System.out.println("==범위 초과=="); list.add("d"); 아래 출력결과에서,
3
null
[a, b, c] size=3, capacity=5
set(int index, Object element) {
elementData[3] ="r"을 할당하는게 [a, b, c,r] 안 된게 이해가 안가는게, list.add("d") add(Object e) { 에서
elementData[3] = "d" 똑같은 코드인데, "d"를 넣어준거는 할당이 되고, AI 에게 질의한 결과 set메서드는 index 3에 값이 무조건 유효값이 있어야 할당이 된다고 답변 하는데, set이나 add 나 그럼 add의 값은 할당이 된건데, set메서드에 유효값이 있어야 한다는 조건이 왜 붙는건지,
각각의 메서드 안에는
elementData[3] ="r"
elementData[3] = "d" 같은걸 수행하는데, set에만 해당
index에 유효값이 있어야 한다 조건문은 코드에 있지 않은데,
list.set(3, "r") r도 [a, b, c,r] 할당이 되야 될거 같은데(제 생각에는) 질문을 남겨봅니다. ai 한테 답변 받았지만 풀리지 않아 질문 드립니다. 항상 감사합니다.
==범위 초과== [a, b, c, d] size=4, capacity=5
답변 1
0
안녕하세요. 이미연님, 공식 서포터즈 David입니다.
아래와 같이 같이 입력된 상태를 확인하는 구문을 추가하셔서 값이 제대로 들어가는지 확인하신 뒤, 다시 시도해 보시겠어요?
만약 제대로 들어가지 않는다면 코드를 잘못 작성하셨을 수 있습니다.
public Object set(int index, Object element) {
Object oldValue = get(index);
elementData[index] = element;
// System.out.println("ElementData["+index+"], :" + elementData[index]);
return oldValue;
}
감사합니다.
대단히 감사합니다. return Arrays.toString(Arrays.copyOf(elementData, size))Arrays.copyOf 아 매서드의 size 제약 때문에 출력 안됬던거 였는데 이해가 부족했습니다. 감사드립니다. ^0^