YJ의 새벽
JAVA (ArrayList,LinkedList) 본문
--List 인터페이스를 구현하므로,
저장순서 O , 중복허용 O
--값이 삭제되거나 추가되면
값들이 앞뒤로 밀린다.
**장점
--배열은 구조가 간단하고, 데이터를 읽는데 걸리는시간이 짧다.
**단점
--배열의 길이를 적절히 조절해야함.
--크기를 변경하기위해 새로운 배열을 생성후 복사해야함. (메모리가 낭비)
--중간에 데이터의 삽입/삭제에 시간이 많이 걸린다.
삽입/삭제 를 위해 다른 데이터를 옮겨야함.
--그러나, 순차적인 데이터 삽입/삭제는 빠르다.
- ArrayList
EX))) ArrayList 연습 .
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList list1 =new ArrayList(10);
list1.add(5);
list1.add(4);
list1.add(2);
list1.add(0);
list1.add(1);
list1.add(3);
System.out.println(list1); //[5, 4, 2, 0, 1, 3]
Collections.sort(list1); // sort정렬
System.out.println(list1); //[0, 1, 2, 3, 4, 5]
list1.add("B");
list1.add("C");
System.out.println(list1);//[0, 1, 2, 3, 4, 5, B, C]
list1.add(6,"A"); //"A"넣기
System.out.println(list1);//[0, 1, 2, 3, 4, 5, A, B, C]
list1.set(6, "AA"); //"AA" 바꾸기
System.out.println(list1);//[0, 1, 2, 3, 4, 5, AA, B, C]
System.out.println(list1.indexOf("AA")); // 6 번째
list1.remove(0); // 0번째값 삭제.
System.out.println(list1);//[1, 2, 3, 4, 5, AA, B, C]
}
}
- LinkedList
--배열의 단점을 보완 , ( 크기변경불가 , 삽입삭제 힘든것 )
--배열과 달리 LinkedList 는 불연속적으로 존재하는 데이터를 연결(Link)
--하나하나 노드로 연결되어있다.
**단점
--불연속적이다보니 데이터 접근성이 나쁘다.
--앞에서부터 하나씩 값을 찾아들어가야함.
- doublely LinkedList (이중연결리스트)
--현재 노드와 앞 , 뒤 노드로 연결을 시켜 앞뒤로 접근성을 향상시킴.
- doubley circular LinkedList (이중 원형 연결리스트)
--맨앞노드와 맨뒤노드를 연결시켜 접근성을 향상시킴.
'SelfStudy > JAVA' 카테고리의 다른 글
JAVA (Comparable , Comparator) (0) | 2023.02.02 |
---|---|
JAVA (Iterator, Arrays) (0) | 2023.02.02 |
JAVA (Stack,Queue) (0) | 2023.02.02 |
JAVA (Collections Framework) (0) | 2023.02.01 |
JAVA (CS) (0) | 2023.01.30 |
Comments