JAVA
[TIL] Vector와 ArrayList
개발자 leelee
2022. 12. 22. 03:11
Vector / ArrayList
공통점 : 저장순서를 유지하고 중복을 허용한다.
차이 : 동기화 유무와 크기 증가시 인덱스의 수의 차이
먼저, Vector의 크기(size)와 용량(capacity)는 다르다.
용량은 박스의 크기 (6) 고 크기는 박스가 얼마나 채워져있는지 (3) 이다.
import java.util.Vector;
public class MyVector {
public static void main(String[] args) {
Vector v = new Vector(6);
v.add("1");
v.add("2");
v.add("3");
}
}
import java.util.Vector;
public class MyVector {
public static void main(String[] args) {
Vector v = new Vector(10); //기본 길이가 10인 벡터 생성, 타입 지정 안함
// Vector<String> V = new Vector<String>(); //타입설정 String 타입만 사용가능
v.add(3); //값 추가
v.add(null); //null값도 add가능
v.add(1,10); //index 1에 10 삽입
v.remove(1); //index 1 제거
// v.clear(); //모든 값 제거
for(int i = 0; i < v.size(); i++) {
System.out.print(v.get(i) + " "); //get(i)를 사용하여 값 출력
}
System.out.println(); //3 null
System.out.println(v.size()); //Vector 자료 개수 : 2
System.out.println(v.capacity()); //Vector 물리적크기 : 10
}
}
ArrayList 사용방법
import java.util.ArrayList;
public class ArrayListEx1 {
public static void main(String[] args) {
ArrayList list = new ArrayList(10);//기본길이가 10인 객체배열
list.add("111");
list.add("222");
list.add("333");
list.add("222"); //중복요소 추가가능
System.out.println(list); //[111, 222, 333, 222]
list.add(0,"000"); // 인덱스 0에 값 추가하고 한칸씩 뒤로 밀림
System.out.println(list); //[000, 111, 222, 333, 222]
System.out.println("index="+list.indexOf("333")); // "333"이 있는 인덱스 출력
System.out.println(list);
System.out.println(list.remove("333"));
System.out.println(list);
for(int i = 0; i< list.size(); i++) {
list.set(i, i+""); // i 인덱스에 있는 객체를 다른 객체로 바꿔줌
}
for(int i = 0; i< list.size(); i++) {
System.out.print(list.get(i)+", "); //지정된 인덱스에 저장된 객체 출력
}
// for(int i = 0; i< list.size(); i++) {
// list.remove(i); //이렇게 삭제하면 값이 남아있음!!!
// }
for(int i = list.size()-1; i>=0; i--) {
list.remove(i); // 마지막 객체부터 삭제하면 배열 복사가 발생하지 않아서 전부 삭제할 수 있음
}
System.out.println(list);
}
}