728x90
컬렉션 프레임워크
컬렉션 프레임워크
- 데이터의 저장, 이와 관련있는 알고리즘을 구조화 해놓은 프레임워크
- 자료구조와 알고리즘을 클래스로 구현해 놓은 것
- 컨테이너 클래스라고도 함
- 컬렉션 프레임워크를 구성하는 클래스들은 많은 양의 인스턴스를 다양한 형태로 저장한느 기능을 제공
- 자료구조와 알고리즘을 잘 몰라도 자바의 컬렉션 프로엠워크를 활용하면 다양하고 효율적으로 인스턴스의 저장이 가능
자료 구조
- 자료의 집합
- 데이터들을 어떤 형태로 저장해 둘 것인가에 대해 미리 연구해 놓은 형태들
- 특별한 사용 목적의 데이터를 특별한 형태로 담을 수 있도록 설계된 공간
- 데이터의 검색, 삽입, 삭제 등의 다양한 측면을 고려하여 효율적인 데이터의 저장 방법을 연구
알고리즘
- 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합을 총칭
어떤방법으로 데이터를 모아놓은 것인가?
어떤 형태로 모아 놓아야 데이터들의 조작이 효율적일 것인가?
=> 트리/해시/리스트/스택/큐/맵
+
저장된 데이터의 일부 혹은 저체를 대상으로 진행하는 각종 연산
=> 정렬/탐색/최대,최소 검색
컬렉션을 위한 자바 인터페이스와 클래스(java.util 패키지)
package test21;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayListTest1 {
public static void main(String[] args) {
// ArrayList<String> list = new ArrayList();
List<String> list = new ArrayList();
//데이터(객체) 저장. 기본형은 저장할 수 없음
list.add(new String("자몽"));
list.add("사과");
list.add("배");
list.add("키위");
list.add("파인애플");
list.add("바나나");
list.add("딸기");
list.add("사과");
System.out.println("초기 상태 : "+list);
//저장한 데이터(객체) 가져오기
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(3));
System.out.println(list.get(4));
System.out.println(list.get(5));
System.out.println(list.get(6));
System.out.println(list.get(7));
System.out.println();
//새로운 요소(객체) 추가
list.add("멜론");
list.add(2, "수박");
System.out.println("새로운 요소 추가 : " + list);
System.out.println();
//지정된 요소(객체) 삭제
list.remove(0);
System.out.println("index 0 요소 제거 : " + list);
System.out.println();
//지정된 요소(객체) 수정
list.set(0, "자몽");
System.out.println("index 0 요소 수정 : " + list);
System.out.println();
//요소값 모두 출력
System.out.print("요소값 출력 : ");
for(int i = 0; i<list.size();i++) {
System.out.print(list.get(i)+" ");
}
System.out.println();
//외부 반복자(Iterator 인터페이스) : Iterable 인터페이스의 하위 인터페이스
//Collection Interface를 상속받은 모든 하위 인터페이스들의 구현 클래스들에서 모두 사용이 가능
Iterator iter = list.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}
728x90
'KDT > Java' 카테고리의 다른 글
240403 Java - 컬렉션 프레임워크 3 (0) | 2024.04.03 |
---|---|
240401 Java - 컬렉션 프레임워크 2 (0) | 2024.04.01 |
240327 Java - 제네릭 2 (0) | 2024.03.27 |
240325 Java - 제네릭 1 (0) | 2024.03.25 |
240321 Java - 스레드 3 (0) | 2024.03.21 |