본문 바로가기

Wanna be a Programmer/Java Programming

Java Programming - Collection API, 배열 vs 컬렉션


Collection API 


- Data를 모아 관리하는 객체, 모으는 방법에 따라 여러 class로 제공, Object type의 배열

- Collection에 정의된 메소드

추가 : add(Object) - boolean 

삭제 : remove(Object) - boolean

조회 : 조회 메소드 X iterator 객체리턴

size() : 관리하는 객체의 수 int

contains(Object) - boolean(인수로 받은 객체가 Collection에 있는지 조회

clear() - collection내의 모든 객체 삭제

List List는 중간 idxnull이 있으면 안 된다.

add(int idx(객체를 삽입할 인덱스), Object) - 삽입

set(int idx, Object) - 교체 ex) list.set(2,a)

remove(int 삭제할idx) : Object type 특정 idx의 객체를 삭제하고 그 객체를 return

get(int idx) : Object type 특정 index의 객체를 return (조회)

indexOf(Object) : int 인수로 받은 객체의 index를 알려준다.

lastIndexOf(Object) : int 인수로 받은 객체의 index를 알려준다.(마지막 index부터 찾음)

set은 주로 collection의 메소드를 그대로 사용하지만, List는 추가적인 메소드가 존재한다.

- ~Set과 같은 이름의 메소드는 Set계열(HashSet, TreeSet), ~List, VectorList 계열 메소드(ArrayList)

- ArrayList(전체조회 : List계열에서 가장 많이 쓰임), LinkedList(데이터 삽입, 삭제 시 편리하다)

 

<<Interface>>

Collection

java.util

<<Interface>>

Map

값만 모음 extends

 

Key-Value

<<Interface>>

Set

 

<<Interface>>

List

중복허용 X, 순서X

 

중복허용, 순서 있음

 

Key값은 중복될 수 없다.

HashTable

 

HashMap

extends

 

MultiThread지원

Properties

(String type만 

모을수 있다)

Return typeHashTable type인 데이터들이 존재한다.

Key(Object) - Value(Object) (주로 String type 사용)

Propertieskeyvalue 모두 String type만 사용

 

배열 vs List

배열 for(int i = 0; i< 배열.length; i++) { 배열[i] }

List for(int I=0; i< list.size(); I++)

{ Object o = list.get(i); }

향상된 forfor(Object o: list) { system.out.println(o); }

배열 vs Collection


- 배열의 사이즈를 지정하면 차후에 고정된 배열의 크기를 확장할 수 없다.

- Collectionlength100으로 지정하고 그 공간을 모두 사용했다면 더 큰 length의 배열을 다시 생성할 필요 없이 메모리가 허용하는 한 길이를 조정할 수 있다.