배열은 연속된 자료를 저장하기 위한 자료구조다.

* 배열

연속된 자료를 저장하기 위한 자료구조

java 배열 선언

int[] array = new int[6];

단점

  • 크기가 넘어가면 더 큰 배열을 새로 할당해야 한다.
  • 길이가 n인 배열 중간에 원소를 삽입/삭제할 경우 O(n)의 시간이 걸린다.

위의 단점을 해결하기 위해 동적배열과 연결리스트라는 자료구조를 사용한다.

* 동적 배열

자료의 크기가 변함에 따라 배열의 크기도 변하는 자료구조

java 표준 라이브러리

ArrayList<Integer> ArrayList = new ArrayList<>();

/*원소 추가*/
ArrayList.add(1);
ArrayList.add(2);

/*원소 삭제*/
ArrayList.remove(Integer.valueOf(2));

/*원소 찾기*/
System.out.println(ArrayList.indexOf(1));
/*
* 결과 :
* 0
* */

특징

  • 삽입시 메모리를 재할당 하여 속도가 느리다.

* 연결 리스트

연결된 자료의 정보만 담고 있는 자료구조

java 표준 라이브러리

LinkedList<Integer> LinkedList = new LinkedList<Integer>();

/*원소 추가*/
LinkedList.add(1);
LinkedList.add(2);
LinkedList.add(3);

/*원소 삭제*/
LinkedList.remove(Integer.valueOf(2));

/*순서대로 출력*/
Iterator<Integer> iterator = LinkedList.iterator();
while(iterator.hasNext())
{
  int n = iterator.next();
  System.out.println(n);
}
/*
* 결과 :
* 1
* 3
* */

특징

  • 추가/삭제가 빈번하게 일어나는 대용량 데이터 처리가 필요할 때 사용하면 성능이 좋다.