package kr.or.ddit.basic;
import java.util.Vector;
public class VectorTest {
public static void main(String[] args) {
//객체 생성
Vector v1 = new Vector();
System.out.println("처음 크기: " + v1.size());
//데이터 추가하기: add(추가할 데이터)
//반환값: 성공(true), 실패(false)
v1.add("aaa");
v1.add(new Integer(11));//래퍼클래스
v1.add(123); //오토박싱
v1.add('a');
v1.add(true);
boolean r = v1.add(3.14);
System.out.println("현재 크기: " + v1.size());
System.out.println("반환값: " + r);
System.out.println("v1 => "+ v1.toString());
// 데이터 추가하기 : addElement(추가할데이터):
// ==> 이전 버전의 프로그램도 사용할 수 있도록 하기 위해 남아있는 메
v1.addElement ("CCC");
System.out.println("v1: " + v1);
//데이터 추가하기:add(index,data)
//==>'index'번째에 '데이터를 끼워 넣는다.
//==> 'index'는 0부터 시작, 반환값은 없다.
v1.add(1,"kkk");
System.out.println("v1: " + v1);
//데이터 수정하기:set(index, 새로운 데이터)
//==>'index'번째의 데이터를 '새로운 데이터'로 덮어쓴다.
//==> 반환값: 원래의 데이터
String temp = (String) v1.set(0, "ZZZ");
System.out.println("v1: " + v1);
System.out.println("원래의 데이터 : " + temp);
//데이터 삭제하기: remove(index)
//==>'index'번째의 데이터를 삭제한다.
//==> 반환값: 삭제된 데이터
v1.remove(0);
System.out.println("v1: " + v1);
temp = (String) v1.remove(0);
System.out.println("삭제 후 v1 => " + v1);
System.out.println("삭제된 데이터 : " + temp);
//데이터 삭제하기: remove(삭제할 데이터)
//==>'삭제할 데이터'를 찾아 삭제한다.
//==>'삭제할 데이터'가 여러개이면 앞에서부터 삭제된다.
//==> 반환값: 삭제성공(true), 삭제실패 (false)
//==> '삭제할데이터'가 '정수형'이거나 'char형'일 경우에는 반드시 객체로 변환해서 사용해야 한다.
v1.remove("CCC");
System.out.println("삭제 후 v1 =>" + v1);
v1.remove(new Integer(123));
System.out.println("삭제 후 v1: " + v1);
v1.remove(new Character('a'));
System.out.println("삭제 후 v1: " + v1);
v1.remove(true);
v1.remove(3.14);
System.out.println("삭제 후 v1: " + v1);
//데이터 꺼내오기: get(index)
//==> 'index'번째의 데이터를 반환한다.
int data = (int) v1.get(0);
System.out.println(v1);
System.out.println("0번째 데이터: " + data);
System.out.println(v1.indexOf(11));
/*
제네릭타입(Generic Type) ==> 클래스 내부에서 사용할 데이터 타입을 클래스 외부에서 지정하는 기법
==>객체를 선언할때 <> 안에 그 객체가 사용할 데이터의 타입을 정해주는 것을 말한다.
==>이런식으로 선언하게 되면 그 데이터 타입 이외의 다른 데이터를 저장할 수 없다.
==>이때 제네릭으로 선언할 수 있는 데이터 타입은 클래스형(참조형?)이어야 한다.
그래서, int는 Integer, boolean은 Boolean, char은 Character 등
==> 제네릭타입으로 선언하게 되면 데이터를 꺼내올 때 별도의 형변환이 필요없다.
*/
Vector<String> v2 = new Vector<String>();
Vector<Integer> v3 = new Vector<>();
v2.add("aaa");
v2.add("123");
String aaa = (String) v2.get(1);
System.out.println(aaa);
System.out.println(v2.indexOf(aaa));
Vector<Vector> vv = new Vector<>(); //2차원 배열
Vector<Vector<Vector>> vvv = new Vector<>(); //3차원 배열
System.out.println("========================================");
v2.clear(); //"전체" 데이터를 삭제하는 메서드
System.out.println("v2의 size: " + v2.size());
v2.add("AAAA");
v2.add("BBBB");
v2.add("CCCC");
v2.add("DDDD");
v2.add("EEEE");
Vector<String> v4 = new Vector<String>();
v4.add("BBBB");
v4.add("EEEE");
System.out.println("v2 => " + v2);
System.out.println("v4 => " + v4);
//데이터 삭제 removeAll(Collection객체)
//==> 'Collection객체'가 가지고 있는 데이터를 모두 삭제한다.
//==> 반환값: 성공(true), 실패(false)
v2.removeAll(v4);
System.out.println("v2 => " + v2);
System.out.println("v4 => " + v4);
System.out.println("--------------------------");
v2.clear();
v2.add("AAAA");
v2.add("BBBB");
v2.add("CCCC");
v2.add("DDDD");
v2.add("EEEE");
//벡터의 데이터를 순서대로 모두 가져와 사용하고 싶으면 반복문을 사용한다.
//주로 for문을 사용
for (int i = 0; i < v2.size(); i++) {
System.out.println(i+ "번째 자료: " + v2.get(i));
}
System.out.println("--------------------------");
//향상된 for문
for(String s : v2) {
System.out.println(s);
}
}
}
카테고리 없음