Vector<E>, ArrayList<E>, Iterator<E>, HashMap<K, V>, LinkedList<E>, Collections 클래스

 

 

Vector<E>

 

* List<E> 인터페이스를 구현한 클래스로서 가변 개수의 배열이 필요할 때 적합함.

* 벡터에 삽입되는 요소의 수가 많아지면 자동으로 크기가 조절됨.

* 요소는 벡터의 맨 마지막이나 중간에 삽입 가능. 이 경우 벡터는 삽입되는 요소의 뒤에 있는 모든 요소들을 한자리씩 뒤로 이동시킴.

* 요소를 삭제하면 뒤의 요소들을 앞으로 하나씩 이동시킴.

 

벡터 생성

 

정수 값만 삽입 가능한 벡터를 만들고자 하면 E에 Integer를 삽입하여

 

Vector<Integer> v = new Vector<Integer>();

 

* 용량을 처음에 설정하고 싶다면

 

Vector<Integer> v = new Vector<Integer>(5); // 초기 용량이 5인 벡터 생성.

 

 

- Vector<E> 클래스의 주요 메소드

 

메소드 

설명 

 Boolean add(E element) 

 벡터의 맨 뒤에 element 추가 

 void add(int index, E element) 

 인덱스 index에 element를 삽입 

 int capacity() 

 벡터의 현재 용량 리턴 

 boolean addAll(Collection<? extends E> c) 

 컬렉션 c의 모든 요소를 벡터의 맨 뒤에 추가 

 void clear

 벡터의 모든 요소 삭제

 Boolean contains(Object o)

 벡터가 지정된 객체 o를 포함하고 있으면 true 리턴 

 E elementAt(int index) 

 인덱스 index의 요소 리턴 

 E get(int index) 

 인덱스 index의 요소 리턴 

 int indexOf(Object o) 

 o와 같은 첫 번째 요소의 인덱스 리턴, 없으면 -1 리턴 

 Boolean remove(Object o) 

 객체 o와 같은 첫 번째 요소를 벡터에서 삭제 

 void removeAllElements() 

 벡터의 모든 요소를 삭제하고 크기를 0으로 만듦 

 int size() 

 벡터가 포함하는 요소의 개수 리턴 

 Object[] toArray()

 벡터의 모든 요소를 포함하는 배열 리턴 

 Boolean isEmpty() 

 벡터가 비어 있으면 true 리턴 

 E remove(int index) 

 인덱스 index의 요소 삭제 

 

 

벡터에 요소 삽입

 

* add() : 벡터의 맨뒤에 삽입

 

ex) v.add(new Integer(5));

 

JDK 1.5버전 이상에서는 자동 박싱에 의해 int 타입의 정수를 사용해도 자동으로 Integer 객체로 변환되어 삽입

 

v.add(5);

 

null 도 삽입할 수 있기 때문에 null도 염두에 두어야함.

 

* 벡터의 중간에 요소 객체 삽입 가능.

ex) 인덱스 2의 위치에 정수 100을 삽입

 

v.add(2, 100);

 

 

벡터내의 요소

 

벡터 내에 존재하는 요소를 알아내기 위해서는 get(), elementAt() 등의 메소드를 이용.

 

ex)

Vector<Integer> v = new Vector<Integer>();

v.add(5);

v.add(4);

v.add(-1);

 

Integer obj = v.get(1);

int i = obj.intValue(); // obj에 있는 정수 읽어옴. 값은 4

 

한문장으로 써도 가능

 

int i = v.get(1); // 자동 언박싱

 

 

벡터의 크기와 용량 알아내기

 

크기는 벡터에 들어있는 요소의 개수, 용량은 수용할 수 있는 크기

 

크기는 size()

 

int len = v.size();

 

용량은 capacity()

 

int cap = v.capacity();

 

 

벡터에서 요소 삭제

 

벡터 내에 임의의 인덱스에 있는 요소를 삭제. remove()

 

v.remove(1); // 인덱스 1의 위치에 있는 요소 삭제

 

모든 요소 삭제. removeAllElements();

 

 

'IT > Java' 카테고리의 다른 글

제네릭 (2)  (0) 2016.07.05
제네릭  (0) 2016.07.04
컬렉션과 제네릭  (0) 2016.07.04

모든 종류의 타입을 다룰 수 있도록 일반화된 타입 매개 변수.

 

Ex)

class Stack<E> {

...

void push(E element) { ... }

E pop() { ... }

...

}

 

특정타입으로 구체화 하는경우 (정수, 문자열, .... 등등) 해당되는 타입만 스택에 사용됨.

 

 

* 제네릭 타입 매개 변수

 

 

E: Element를 의미하며 컬렉션에서 요소를 표시할 때 많이 사용

T: Type을 의미

V: Value를 의미

K: Key를 의미

'IT > Java' 카테고리의 다른 글

제네릭 컬렉션 활용과 Vector<E>  (0) 2016.07.05
제네릭  (0) 2016.07.04
컬렉션과 제네릭  (0) 2016.07.04

 

일반화된 타입(generic type)의 타입 매개 변수를 <> 사이에 추가.

 

제네릭 클래스 작성 예시)

 

public class MYcalss<T> { // 제네릭 클래스 Myclass, 타입 매개 변수 T

T val; // 변수 val의 타입은 T

void set(T a) {

val = a; // T 타입의 값 a 를 val 에 지정

 

}

T get() {

return val; // T 타입의 값 val 리턴

}

}

 

 

제네릭 클래스 레퍼런스 변수 선언 예시)

 

MyClass<String> s;

List<Integer> li;

Vector<String> vs;

 

제네릭 객체 생성 - 구체화(Specialization)

 

MyClass<String> s = new MyClass<String>();

s.set("Hello");

System.out.println(s.get());

 

 

객체 s의 모양

 

public class MyClass<String> {

String val;

void set(String a) {

val = a;

}

String get() {

return val;

}

}

 

//주의사항 : int 는 사용 불가 하고 Integer 를 사용 해야함

'IT > Java' 카테고리의 다른 글

제네릭 컬렉션 활용과 Vector<E>  (0) 2016.07.05
제네릭 (2)  (0) 2016.07.05
컬렉션과 제네릭  (0) 2016.07.04

1. 컬렉션

소위 자료 구조 과목에서 배운 중요한 자료구조 들을 만든것. JDK 로 제공.

 

제네릭이라는 기법으로 구현되어 있음.

 

가변 크기로서 객체의 개수를 염려 할 필요 없음.

컬렉션 내의 한 객체가 사라지면 컬렉션이 자동으로 자리를 옮겨준다.

(배열은, 고정크기 이상의 객체 관리 할수 없음. 배열의 중간에 객체가 삭제되면 응용프로그램에서 자리를 옮겨야함)

 

즉, 고정크기의 배열이 가는 단점 극복, 가변 개수의 객체들 쉽게 삽입, 삭제와 검색을 할 수 있는 가변 크기의 컨테이너이다.

또한, 요소라고 불리는 가변 개소의 객체들의 저장소라고도 할 수 있으며, 요소들을 관리하기 위해 요소의 추가, 삭제, 검색 등의 기능 제공.

 

컬렉션 클래스에는 Vector<E>, ArrayList<E>, LinkedList<E>, HashSEt<E>, Stack<E>, HashMap<K, V> 등이 있다.

'IT > Java' 카테고리의 다른 글

제네릭 컬렉션 활용과 Vector<E>  (0) 2016.07.05
제네릭 (2)  (0) 2016.07.05
제네릭  (0) 2016.07.04

+ Recent posts