배열(Array), 동적배열(ArrayList), 연결리스트(LinkedList)
배열은 연속된 자료를 저장하기 위한 자료구조다.
* 배열
연속된 자료를 저장하기 위한 자료구조
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
* */
특징
- 추가/삭제가 빈번하게 일어나는 대용량 데이터 처리가 필요할 때 사용하면 성능이 좋다.