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

👨‍🦳 배열(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);
}

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

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

좋은 웹페이지 즐겨찾기