Vector와 ArrayList
ArrayList는 기존의 Vector를 개선한 것으로 구현 원리와 기능적으로 동일.
List인터페이스를 구현하므로, 저장 순서가 유지되고 중복을 허용한다.(공통특징)
데이터의 저장공간으로 배열을 사용한다.(공통특징)
Vector는 자체적으로 동기화 처리가 되어 있으나 ArrayList는 그렇지 않다.(차이첨)
(ArrayList는 removeRange()를 제외하고 모든 메서드가 Vector의 기존 메서드랑 같다.)
▶ ArrayList와 Vector
간단히 설명을 하자면 ArrayList와 Vector는 -> 기본적으로 하는일은 같다고 본다. 하지만,컬렉션 프레임워크가 나오기 전에 제공되던 Vector클래스는 성능상 단점이 많아(무조건 동기화) 멀티 스레드 환경이 아니면 ArrayList를 사용하는게 좋다.
하는일 - Object배열을 이용해서 데이터를 순차적으로저장한다.
- Ex)
- 첫번째로 저장한 객체는 Object배열의 0번째 위치에 저장.
- 그 다음에 저장하는 객체는 1번째 위치에 저장.
- 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배여에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다.
▶생성자와 매서드
Vector() - 크기가 10인 Vector를생성한다.
Vector(Collection c) - 주어진 컬렉션을 저장할수 있는 생성자
Vector(int initialCapacity) - Vector의 초기 용량을 지정할수 있는 생성자
Vector(int ,int) - 초기 용량과 용량의 증분을 지정 할 수 있는 생성자
▶ ArrayList 예제_)
import java.util.ArrayList;
import java.util.List
import java.util.List
public class Ex {
public static void main(String[] args) {
final int LIMIT = 10; // 자르고자 하는 글자의 개수를 지정
String source = "0123456789abcdefghijABCDEFGHIJ!@#$%^&*()ZZZ";
int length = source.length();
final int LIMIT = 10; // 자르고자 하는 글자의 개수를 지정
String source = "0123456789abcdefghijABCDEFGHIJ!@#$%^&*()ZZZ";
int length = source.length();
List list = new ArrayList(length / LIMIT + 10); // 크기를약간여유 있게 잡는다.
for (int i = 0; i < length; i+=LIMIT) {
if(i+LIMIT < length)
list.add(source.substring(i, i+LIMIT));
else
list.add(source.substring(i));
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
for (int i = 0; i < length; i+=LIMIT) {
if(i+LIMIT < length)
list.add(source.substring(i, i+LIMIT));
else
list.add(source.substring(i));
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
▶ 단점
- 크기를 변경할 수 없다.
- 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸린다.
'Programing > Java' 카테고리의 다른 글
[Java] collection framework - List(LinkedList) (0) | 2014.09.13 |
---|---|
[Java] 큐 & 스택 (0) | 2014.09.13 |
[java]내부클래스 (Inner Class) (0) | 2014.09.13 |
String VS StringBuffer VS StringBuilder (0) | 2014.09.13 |
[Java]자바 JDK 에서 제공하는 패키지 (0) | 2014.09.13 |
댓글