컬렉션 프레임워크 뭘까요?
컬레션 프레임워크는 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다.
이러한 컬렉션 프레임 워크에는
List와 Set 인터페이스를 상속하는 Collection 인터페이스와 (key,value)의 값을 가지는 Map 인터페이스가 존재하는데
이 중 먼저 Collection의 상속을 받는 List에 대해서 알아보겠습니다.
Collection 은 위에서 말한 것처럼 List와 Set을 상속하는 인터페이스인데요
순서가 있거나, 집합적인 저장공간을 나타내는 특징이 있으며 이 각각의 특징은 나뉘어
List -> 순서가 있는 저장 공간 Set -> 집합적인 저장 공간 으로 나뉘게 됩니다.
List는 데이터의 순서가 유지가 되며, 중복 저장이 가능합니다!
//Set,Map과 비교를 해보면
List : 데이터 순서 유지 o / 중복 저장 o
Set: 데이터 순서 유지 x / 중복 저장 x
Map: 데이터 순서 유지 x / 키는 중복 저장x , 값은 중복 저장 o //
List 인터페이스는 배열과 같은 구조를 가지고 있으며, 객체를 인덱스로 관리하기 때문에
인덱스로 객체를 삭제, 추가, 검색할 수 있는 등 여러 기능을 제공합니다.
ex) add( int index, Object element) 주어진 인덱스에 객체를 추가
get(int index) 주어진 인덱스에 저장된 객체를 반환
이러한 List 인터페이스를 구현한 클래스로는 ArrayList, Vector , LinkedList, Stack 등이 있는데
이 중 ArrayList를 알아볼게요
ArrayList는 List 인터페이스를 구현한 클래스이며, 컬렉션 프레임워크에서 가장 많이 사용되는 클래스입니다.
ArrayList는 배열과 비슷한데 배열은 생성될 때 크기가 고정되는 반면, ArrayList는 배열의 크기보다 초과하여 객체를 추가하게 되면 자동으로 배열의 크기가 커지게 됩니다. 또한 데이터가 연속적으로 존재하기에 데이터의 순서또한 유지 됩니다!
ArrayList<T> list = new ArrayList<T>(20);
위의 코드는 ArrayList를 생성하는 코드인데요
저장할 객체 타입을 <T> 제네릭으로 표기하는 특징이 있습니다.
또한 뒤에 (숫자)를 적게되면 List 의 크기를 정할 수 있고, 아무 숫자도 쓰지 않으면 List의 크기는 10이 됩니다.
public class List {
public static void main(String[] args) {
boolean babo=false;
ArrayList<Boolean> list = new ArrayList<>(20);
list.add(true);
list.add(babo);
list.add(false);
for(int i=1; i<=17 ; i++){
int num= (int)(Math.random()*2+1);
if(num==1) list.add(true);
else list.add(false);
}
for(boolean bool : list) {
System.out.println(String.valueOf(bool));
}
}
}1
//호출
true false false false true true true false true false true ->
true false true false false false true true false
다음은 ArrayList에 boolean 객체를 추가하는 예제입니다.
// bool 을 System.out.println(String.valueOf(bool))
list.add -> 객체 추가
17개의 요소를 true, false 랜덤으로 넣었다.
'Java > Java' 카테고리의 다른 글
Java 컬렉션 프레임워크 Map(HashMap) #로그인 코드 만들기 (0) | 2023.01.14 |
---|---|
Java 컬렉션 프레임워크_ Set(TreeSet) (0) | 2023.01.14 |
Java 컬렉션 프레임워크 _ Set(HashSet) (0) | 2023.01.14 |
Java 컬렉션 프레임워크 Iterator (0) | 2023.01.14 |
Java_ 열거형(Enum) (0) | 2023.01.10 |