흑흑 나 너무 부족하다 빨리 공부를 더 열심히 해야겠다
앞서 만든 ArrayList는 배열의 크기를 지정해 줬기 때문에, 무한정 추가할 수는 없다.
(참고: 여기서 LinkedList의 장점이 드러난다. LinkedList는 메모리가 감당하는 한, 무한정 데이터를 추가할 수 있다. 반면에, ArrayList는 애초에 배열의 크기를 지정하기 때문에 무한정 추가할 수 없다. 또한, 배열의 크기를 과도하게 크게 설정한 경우 공간의 낭비가 생긴다.)
그래서 나는 아래 코드처럼 resize() 메서드를 구현해보았다.
모든 부분을 잘 알아두자.
resize()를 void로 선언하여서
Object[] newArray = new Object[size+50]으로 새로운 ArrayList를 정하고 그것의 크기를 size보다 크게 해준다.
그리고 이 새로 만든 newArray라는 ArrayList의 정보를 elementData ArrayList 정보와 일치시켜야 한다.
한편, add함수나 addLast에서는 elementData라는 이름을 사용하고 있으므로,
elementData = newArray 해주어서 배열의 크기 정보를 연동시켜준다
ArrayList관련 강의를 마쳤다.. 다음엔 Linked list
반응형
'자료구조 + 알고리즘' 카테고리의 다른 글
[자료구조] Linked list 데이터 추가 [VisuAlgo.net] (0) | 2020.03.30 |
---|---|
[자료구조] Linked list의 구조 (0) | 2020.03.28 |
[자료구조] ArrayList 구현 - size, indexOf [Java] (0) | 2020.03.18 |
[자료구조] ArrayList 구현 - toString사용, 데이터 확인하기 [Java] (0) | 2020.03.17 |
[자료구조] ArrayList 구현 - get, 데이터 가져오기 [Java] (0) | 2020.03.16 |