본문 바로가기
Programming/Java

7장. 컬렉션과 제네릭 #1 개요, Vector 컬렉션

by jaegom 2020. 6. 15.

컬렉션

1. 컬렉션이란? 객체들을 요소로 하는 저장소

  • 요소 개수에 따라 크기 자동 조절 ( 객체 배열과 차이점 )
  • 요소의 삽입, 삭제에 따른 위치 자동 이동(가변 크기의 컨테이너)
  • 객체만 요소가 된다.

잠시상기) 기본 타입배열은 객체로 관리한다. 그럼 기본타입의 배열도 컬렉션 요소로 가능한가?

 

2. 제네릭(generics)기법 : 특정 타입이 아닌 여러 종류의 타입으로 쓸 수 있게 '클래스나 메소드'를 다루는 기법

  • 기본 타입 불가 cf) 자동박싱을 해주긴 하지만 Wrapper 클래스를 애초부터 써주자
  • 형식 : 제네릭<타입>
    ex) Stack<Integer> : 정수만 다루는 스택 //제네릭을 추후 직접 만들 수도 있다.
    ex) Stack<String> : 문자열만 다루는 스택
  • 타입 : E Element, T Type, V Value, K key
  • 제네릭 타입 추론

3. Vector<E>

  • 벡터 컬렉션-> n-tuple
  • import java.util.Vector
  • 객체 컨테이너(길이 자동으로 늘려줌)
  • 삽입(add), 검색(get), 삭제(remove)가 자유롭다. (기본 메소드)

삽입요소

  • 객체, null
  • 기본타입은 Wrapper 객체로 만들어 삽입 ->이제 JVM이 알아서 기본타입들 박싱해줌.

ex) Vector<Integer> v = new Vector<Integer>(7);
v.add(5); v.add(1); v.add(2); v.add(2,100); v.get(1); v.remove(1);
v.size(); //요소 개수
v.capacity(); //벡터용

 

4. 컬렉션을 매개변수로 받는다?

ex)
public void printVector(Vector<Integer> v) {
for(int i=0; i<v.size(); i++) {
int n = v.get(i); // 벡터의 i 번째 정수
System.out.println(n);
}
}

Vector<Integer> v = new Vector<Integer>(); // Integer 벡터 생성
printVector(v); // 메소드 호출

 

 

댓글