개발 공부중

[TIL] Vector와 ArrayList 본문

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);
		
	}
}
Comments