[22/02/28] 배열(array)과 List의 차이점

Que Lin·2022년 2월 28일
0

1day 1commit

목록 보기
42/63

👨‍🦳 배열(array)과 List의 차이점

♠ 배열

int[] array = { 1, 2, 3 };

String[] arr = new String[5];
       arr[0] = "1";
       arr[1] = "2";
       
for(int i = 1; i < arr.length-1; i++) { 
       // 삭제하고 싶은 인덱스 값(1번)부터 마지막 인덱스까지 반복문을 돌린다.
  list[i] = list[i+1];  // 인덱스 i+1의 값을 인덱스 i로 이동
 } System.out.println(list[1]); //값 확인
for(int i=0; i<arr.length; i++) {//for문을 통한 전체출력
    System.out.println(arr[i] + " ");
}

배열의 장점은 구현이 간단하고 탐색이 빠르다는 것입니다. 인덱스 번호만 알고 있으면 데이터를 바로 얻을 수 있습니다.
단점은 새로운 데이터를 중간에 삽입, 삭제하게 될 경우, 중간 기점으로부터 나머지 전체 데이터들이 한 칸씩 움직여줘야 합니다. 즉, 하나의 데이터를 삽입, 삭제하기 위해 소모되는 리소스가 굉장히 큽니다.

♣ 리스트

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(1,10); //index 1에 10추가
list.remove(1); // index 1 제거
for(Integer i : list) { //for문을 통한 전체출력
    System.out.println(i);
}

리스트의 장점은 데이터 삽입, 제거가 배열보다 빠르고 간단합니다. 메모리 주소를 연속적으로 구현할 필요가 없으며 중간 기점에 연결된 주소값만 바꿔주면 쉽게 데이터를 삽입, 제거할 수 있습니다.
단점은 기존에 저장된 데이터를 탐색하게 될 경우, 첫 번째부터 시작해서 원하는 데이터가 나올때까지 계속 탐색을 해야합니다. 따라서 인덱스를 기준으로 데이터 탐색을 하는 배열에 비해 굉장히 느립니다. 데이터와 더불어 주소값도 함께 저장을 해야하기 때문에 배열에 비해 저장소를 사용하는 리소스가 더 큽니다.

=> 배열은 구현이 간단하고 탐색이 빠르지만 데이터를 삽입, 삭제하기 위해 소모되는 리소스가 굉장히 크고
리스트는 데이터 삽입, 제거가 배열보다 빠르고 간단하지만 저장소를 사용하는 리소스가 크고 데이터 탐색이 느립니다.

profile
1일 1커밋 1일 1벨로그!

0개의 댓글