Advanced Java | Vector Test

25562 단어 vectorJavaJava

객체 생성

Vector v1 = new Vector();

System.out.println("크기 : "+v1.size());   //0 출력

데이터 추가하기 : add
반환값 : 추가성공(true), 실패(false)

boolean ss = v1.add("aaaa");  
//객체만 저장할 수 있기때문에 wrapper 클래스로 만들어 저장. 
v1.add(new Integer(111)); 
//char는 character라고 써야함


//그런데 이제 진화해서 안 해도 됨. 
//내부에서 자동으로 객체화 시켜줌 ==> 오토박싱 ==> 오토언박싱
v1.add(123);
v1.add('a');
v1.add(true);
v1.add(3.14);
System.out.println("크기: " + v1.size());   //6 출력
System.out.println("반환값: " + ss);   //true 출력
v1.addElement("CCC");
System.out.println("v1 => " + v1);   
//[aaaa, 111, 123, a, true, 3.14, CCC] 출력

데이터 추가 : add(index, 데이터)

  • index번째에 '데이터'를 끼워 넣는다.
  • 반환값은 없다.
v1.add(1,"KKK");
System.out.println("v1 => " + v1);   
//[aaaa, KKK, 111, 123, a, true, 3.14, CCC] 출력

데이터 수정 : set(index, 새로운데이터)

  • index번째에 데이터를 '새로운데이터'로 덮어쓴다.
  • 반환값 : 원래의 데이터
String temp = (String) v1.set(1, "ZZZ");
System.out.println("v1 => " + v1);  
//[aaaa, ZZZ, 111, 123, a, true, 3.14, CCC] 출력

데이터 삭제 : remove(index)

  • index번째 데이터를 삭제한다.
  • 반환값 : 삭제된 데이터
String temp2 = (String) v1.remove(0);
System.out.println("삭제후 v1 => " + v1);  
//[ZZZ, 111, 123, a, true, 3.14, CCC] 출력
System.out.println("삭젣된 데이터 => " + temp2)
// aaaa 출력

데이터 삭제 : remove(삭제할데이터)

  • '삭제할 데이터'를 찾아서 삭제한다.
  • '삭제할 데이터'가 여러개 존재하면 앞에서부터 삭제된다.
  • 반환값 : 삭제성공(true), 삭제실패(false)
  • '삭제할 데이터'가 '정수형' 종류이거나 'char형'일 경우에는 반드시 객체로 변환해서 사용해야한다.
v1.remove("CCC");
System.out.println("삭제후 v1 => " + v1);  
//[ZZZ, 111, 123, a, true, 3.14] 출력

v1.remove(new Integer(123)); 
//정수타입의 데이터를 지우고싶으면 wrapper클래스를 이용해야한다.
System.out.println("삭제후 v1 => " + v1);
//[ZZZ, 111, a, true, 3.14] 출력
v1.remove(new Character('a'));
System.out.println("삭제 후 v1 => " + v1);
//[ZZZ, 111, true, 3.14] 출력

v1.remove(true);
v1.remove(3.14);
System.out.println("삭제 후 v1 => " + v1);
//[ZZZ, 111] 출력

데이터 꺼내오기 : get(index)

  • 'index번째'의 데이터를 꺼내서 반환한다.
int data = (int) v1.get(1);
System.out.println("1번째index 자료"+data);   //111출력

제네릭 타입(Generic Type)

  • 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법
  • 객체를 선언할 때 < >안에 그 객체가 사용할 데이터의 타입을 정해주는 것을 말한다.
  • 이렇게 선언하면 다른 종류의 데이터를 저장할 수 없다.
  • 이 때 < >안에 지정하는 데이터 타입은 클래스형이어야 한다.
    ex) Integer, Double, String, Boolean, Character
  • 데이터를 꺼내올 때 별도의 형변환이 필요없다.
Vector<String> v2 = new Vector<String>();  //String만 저장
Vectoer<Integer> v3 = new Vector<Integer>();  //int형만 저장
v2.add("안녕하세요");
//v2.add(123) //오류: 다른 종류의 데이터를 저장할 수 없다.
 String temp3 = v2.get(0);
 System.out.println("temp3 = "+temp3);  //안녕하세요 출력
 
 Vector<Vector> vv = new Vector<>();
 Vector<Vector<Vector>>vvv = new Vector<>();

//------------------------------------------------


v2.clear();  //전체 데이터 삭제
System.out.println("v2의 크기 : " + v2.size());   //0 출력

v2.add("AAAA");
v2.add("BBBB");
v2.add("CCCC");
v2.add("DDDD");
v2.add("EEEE");
System.out.println("v2 => "+v2);   
//[AAAA, BBBB, CCCC, DDDD, EEEE] 출력

Vector<String> v4 = new Vector<>();
v4.add("BBBB");
v4.add("DDDD");
System.out.println("v4 => "+v4);   //[BBBB, DDDD] 출력

데이터 삭제 : removeAll(Collection객체)

  • 'Collection객체'가 가지고 있는 데이터를 모두 삭제한다.
v2.removeAll(v4);
System.out.println("삭제후 v2 => " + v2);   
//[AAAA, CCCC, EEEE] 출력

//------------------------------------------------

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));
}
/*
0번째 자료:AAAA
1번째 자료:BBBB
2번째 자료:CCCC
3번째 자료:DDDD
4번째 자료:EEEE
*출력*/

향상된 for문

for(String s : v2) {
	System.out.println(s);
}
/*
AAAA
BBBB
CCCC
DDDD
EEEE
*출력*/

좋은 웹페이지 즐겨찾기