엄청 간단하다.
puble Object get(int index) {
return elementData[index];
}
그치그치
으아아아유ㅠㅠㅠ 아니 근데 왜 null이 뜨는거지??
분명히 똑같이 했는데..
ㅇNPE : NullPointerException
자바 데이터 타입은 기본 타입(privmitive type)과 참조 타입(reference type)이 있다.
참조 타입은 객체의 생성 이전에는 할당된 메모리 주소가 없는 null을 참조하는 변수이며, 이를 가지고 작업을 수행하면 NPE가 발생하게 된다.
자바에서는 기본 데이터형을 제외한 모든 데이터 타입을 참조 데이터형이라고 한다. (참조 자료형)
new를 사용해서 객체를 만드는 모든 건 참조 데이터형이라고 생각해도 ㅇㅇ
(단 String은 제외라고 한다)
NPE는 대부분 개발자의 부주의로 발생되며, 참조 객체에 대한 유효성을 사전에 확인하는 프로그래밍 습관이 필요하다.
매개변수를 다른 객체로 변경하는 것과, 참조 데이터 타입의 매개변수에 담겨 있는 객체에 접근하는 것은 완전히 다른 의미를 가지기 때문에 두 가지 경우의 차이점을 확실하게 이해하자
https://opentutorials.org/course/2517/14152
참조(reference) - 프로그래밍 입문
복제 전자화된 시스템의 가장 중요한 특징은 복제다. 현실의 사물과 다르게 전자화된 시스템 위의 데이터를 복제 하는데는 비용이 거의 들지 않는다. 바로 이러한 특징이 소프트웨어를 기존의 산업과 구분하는 가장 큰 특징일 것이다. 프로그래밍에서 복제가 무엇인가를 살펴보자. package org.opentutorials.javatutorials.reference; public class ReferenceDemo1 { public static void ru
opentutorials.org
ㅠㅠ 일단 카페에 질문은 올려놓았다.
>> 어이없는 상황을 만들었다... 확인하기도 쉬웠을 텐데 초짜인 나는 확인도 제대로 못했다.
지금 내가 메서드를 addLast랑 get을 쓰고 있으니 그쪽을 확인해봤어야 하는데
전체적으로 다 확인하느라.. 복잡하게 생각하기도 했고.. 암튼 초보네...
카페에서 어떤 분이 집어주셨다!!
또...이걸 못 검토했냐!! 라는 말이 나올정도로 내가 잘못 한 것이 있다..
addLast를 구현할 때, size++;를 포함하지 않아서
계속 size = 0; 이 되었기 때문에 계~~속 인덱스 0에 값을 저장했던 거고..
그래서 인덱스 0번에 결과적으로 들어가 있는 40만 제대로 출력되고,
인덱스 1, 2, 3은 null이 나온 것이다...ㅠㅠ 아효 바보..
수정하고 나니까 이상 없음!!
분명 저번 기록을 보니까 addLast만들 때 size++;적어줬었는데 왜 안적혀있지?
글구 난 왜 size++;가 없는걸 못봤지?ㅠㅠ
앞으로 검토를 차분히 잘하자.. 질문 하기 전에..
arrayList가 좋은 점이 이 get에서 보인다.
인덱스로 접근한다는 장점! 뭔지 알겠다.
특정한 위치에 있는 메모리를 가져오는게 굉장히 빠르다!
get안에는 arrayList를 사용하는 중요한 이유가 담겨져 있는 것이다.
'자료구조 + 알고리즘' 카테고리의 다른 글
[자료구조] ArrayList 구현 - size, indexOf [Java] (0) | 2020.03.18 |
---|---|
[자료구조] ArrayList 구현 - toString사용, 데이터 확인하기 [Java] (0) | 2020.03.17 |
[자료구조] ArrayList 구현 - add/addFirst, 데이터를 중간/처음에 추가 [Java] (0) | 2020.03.12 |
[자료구조] ArrayList 구현 - addLast, 데이터를 끝에 추가 [Java] (0) | 2020.03.11 |
[자료구조] ArrayList 구현 - 객체생성 [Java] (0) | 2020.03.10 |