시스템아 미안해

ArrayList & LinkedList 본문

java/문법

ArrayList & LinkedList

if else 2022. 5. 30. 12:37
<ArrayList> 
: 순차적인 인덱스 구조

- ArrayList의 add(index, value)
: index를 생략하면 ArrayList 맨 뒤에 데이터가 추가
: index중간에 값을 추가하면 해당 인덱스부터 마지막 인덱스까지 모두 1씩 뒤로 밀려남

- remove()함수를 사용하여 특정 인덱스의 객체를 제거하면
 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨짐

- get(index) 메소드를 사용하면 ArrayList의 원하는 index의 값이 리턴
for loop / while(hasNext()) 통해서 출력

- 찾고자 하는 값을 검색하려면 ArrayList의 contains(value) 

- 값을 있는 index를 찾으려면 indexOf(value) 메소드를 사용하면 되고 만약 값이 없다면 -1을 리턴

- 크기 재조정 가능하나 데이터 밀고 땡겨야해서 꽤 오래 걸림
크기 한정돼있음

 ---->insert를 해야할 경우가 많다면 ArrayList보다는 LinkedList를 활용
<LinkedList>
: 비순차적인 노드의 집합 

- 포인터(참조자)로 인해 작은 데이터에 활용시 메모리 사용에 비효율적일것. 

- ArrayList와 달리 List인터페이스를 구현한 AbstractList를 상속받는게 아닌 
AbstractSequentialList를 상속받음

- 순서대로 연결돼있는게 아니라 주소값(노드)으로 서로 연결돼있음

- 데이터 삽입/삭제 시 한 번에 가능. but 수정시 arraylist보다 해당 데이터 찾는 시간이
오래 걸림

- 무한대 자료 삽입 가능