ArrayList와 LinkedList 질문 있습니다.
ArrayList는 배열을 기반으로 만든 List이며
LinkedList는 객체의 참조로 연결된 List로 이해했습니다.
요즘에는 메모리 용량이 많이 크기 때문에 고려하지 않아도 된다고 생각하는데 궁금증이 있어 질문을 남깁니다.
LinkedList는 데이터가 추가 될 때 마다 새로운 Node를 만들어서 현재 가지고 있는 데이터의 크기만큼 메모리를 차지하는 반면
ArrayList는 들어있는 데이터 크기가 일정 크기를 넘는 경우 더 많은 데이터를 저장할 수 있는 새로운 Array를 생성하여 반환하기 때문에
동일한 개수의 데이터를 저장해도 ArrayList가 메모리 상에서 차지하는 크기가 크다고 생각하면 되나요?
답변 1
0
링크드 리스트가 메모리가 더 크지 않을까요?
어레이 리스트는 한번에 여러개를 생성하는 반면(영한님 코드 grow() 참조), 링크드 리스트는 하나식 연결 할 때마다 하나식 생성 하니까(영한님 코드 nodeMain1 참조),
한꺼번에 메모리 생성 하는 것 보다는, 하나 식 연결 하면서 메모리 생성이 더 많이 들고 힘들지 않을까 라는 생각을 하게 되네요. (추측이에요)
그리고 "자바 성능리스트 비교표"를 보면 대부분 어레이 리스트가 빠른 것을, 알 수 있듯이 어레이 리스트가 메모리상 차지하는크기가 작지 않을까요?
3
LinkedList와 ArrayList에 각각 30개의 데이터를 저장했다고 가정할 때 LinkedList는 30개의 노드가 연결되있고
ArrayList는 데이터가 30개가 있지만 49개의 저장공간을 확보하고 있어야 하니까 ArrayList가 데이터의 개수가 많아질 수록 LinkedList에 비해 더 많은 메모리 공간을 차지한다고 생각했는데
생각하는자님이 작성해주신 답변을 받고 이해했습니다.
LinkedList에 연결하기 위해 생성하는 노드는 이전, 다음 노드의 주소 값을 가지고 있어야 하니까 ArrayList보다 LinkedList가 차지하는 크기도 더 크고 부가적인 요소들로 인해 속도도 더 느리겠네요.
감사합니다
제네릭 타입 매개변수 제한과 관련한 문의입니다.
0
80
3
강의가 좀 버겁다 느껴질 때 학습방법 문의
1
135
4
제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T
0
62
1
new T()가 안 되는 니유
0
102
1
안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.
0
98
2
자바 로드맵 선택 질문
0
111
2
실전 자바 중급 - 2편 후 추천 강의
0
176
2
실프로젝트에서 Java25버전 사용
0
121
1
Arrays.sort
0
68
1
블로그 작성 시, 저작권 문제에 대하여
0
166
1
중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.
0
94
3
pop()과 poll()의 차이
0
94
1
특정 index의 노드 조회하기 질문
0
66
2
List.of() 비어있는 불변 리스트 생성
0
81
2
문제2: 개 타입 반환
0
56
2
[리뷰] 중급2편까지 겨우 완강 했습니다.
0
114
2
문제와 풀이1 Ex2와 Ex3
0
65
2
노드 삭제시 노드 null값으로 초기화
0
77
2
강의영상에 대한 질문
0
57
1
타입 매개변수 제한
0
59
1
compareTo
0
68
1
직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다
0
99
3
섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨
0
70
2
퀴즈 오류 관련 문의
0
109
1





