자바의 자료를 모아서 저장할 수 있는 클래스 및 인터페이스를 컬렉션 프레임워크라고 한다. 컬렉션 프레임워크 인터페이스로는 List, Set, Map 등이 있다.
List는 순서(index)가 있으며 인덱스는 0부터 시작한다. List의 구현 클래스로는 Vector, ArrayList 등이 있다.
interface List{}
class Vector implements List{}
class ArrayLIst implements List{}
Set은 순서가 없다. Set의 구현 클래스로는 HashSet 등이 있다.
interface Set{}
class HashSet implements Set{}
Map도 순서가 없으며 Key와 Value로 구성되어 있다. Map의 구현 클래스로는 HashMap, Properties, HashTable 등이 있다.
interface Map{}
class HashMap implements Map{}
인터페이스와 이를 구현한 클래스들이기 때문에 다형성을 갖는다.
List list = new Vector()
List list = new ArrayList()
Set set = new HashSet()
Map map = new HashMap()
//1. List 계열
//<E> Element 요소
Vector vec = new Vector();
vec.add(3);
vec.add(2.4);
vec.add('R');
vec.add("KOREA");
vec.add(new Integer(5));
vec.add(new Double(6.7));
//Integer inte = new Integer(5) Old Version
//Integer inte = 5 New Version
System.out.println(vec.size()); //6 요소의 갯수
add 메소드를 통해 객체를 추가할 수 있다. size 메소드는 저장되어 있는 전체 객체 수를 리턴한다.
for (int i=0; i<vec.size(); i++) {
System.out.println(vec.get(i));
}//for end
get 메소드는 주어진 인덱스에 저장된 객체를 리턴한다.
이외 여러 메소드가 있다.
vec.remove(0); //0번째 요소 제거하기
System.out.println(vec.size()); //5
vec.removeAllElements(); //요소 전부 제거하기
System.out.println(vec.size()); //0
if(vec.isEmpty()) { //요소의 갯수가 0개 인지?
System.out.println("비어 있다");
} else {
System.out.println("비어 있지 않다");
}//if end
문제
//다형성
List list = new ArrayList();
list.add(5);
list.add(6.7);
list.add('M');
list.add("SEOUL");
System.out.println(list.size()); //4
//문)remove() 이용해서 list 요소를 전부 삭제하시오
//내 풀이
int size = list.size();
for (int i=0; i<size; i++) {
list.remove(0);
}
System.out.println(list.size()); //0
//다른 풀이
for (int i=list.size()-1; i>=0; i--) {
list.remove(i);
}
'웹개발 교육 > Java' 카테고리의 다른 글
[36일] Java (46) - generic (0) | 2022.09.16 |
---|---|
[36일] Java (45) - Set, Map (0) | 2022.09.16 |
[36일] Java (43) - throws (0) | 2022.09.16 |
[36일] Java (42) - Exception (0) | 2022.09.16 |
[35일] Java (41) - 내부 클래스(중첩 클래스) (0) | 2022.09.15 |