KDT/Java

240328 Java - 컬렉션 프레임워크 1

001cloudid 2024. 3. 28. 17:39
728x90

컬렉션 프레임워크

컬렉션 프레임워크

  • 데이터의 저장, 이와 관련있는 알고리즘을 구조화 해놓은 프레임워크
  • 자료구조와 알고리즘을 클래스로 구현해 놓은 것
  • 컨테이너 클래스라고도 함
  • 컬렉션 프레임워크를 구성하는 클래스들은 많은 양의 인스턴스를 다양한 형태로 저장한느 기능을 제공
  • 자료구조와 알고리즘을 잘 몰라도 자바의 컬렉션 프로엠워크를 활용하면 다양하고 효율적으로 인스턴스의 저장이 가능

자료 구조

  • 자료의 집합
  • 데이터들을 어떤 형태로 저장해 둘 것인가에 대해 미리 연구해 놓은 형태들
  • 특별한 사용 목적의 데이터를 특별한 형태로 담을 수 있도록 설계된 공간
  • 데이터의 검색, 삽입, 삭제 등의 다양한 측면을 고려하여 효율적인 데이터의 저장 방법을 연구
  •  

알고리즘

  • 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합을 총칭

 

어떤방법으로 데이터를 모아놓은 것인가?

어떤 형태로 모아 놓아야 데이터들의 조작이 효율적일 것인가?

=> 트리/해시/리스트/스택/큐/맵

+

저장된 데이터의 일부 혹은 저체를 대상으로 진행하는 각종 연산

=> 정렬/탐색/최대,최소 검색

 

컬렉션을 위한 자바 인터페이스와 클래스(java.util 패키지)

그림 1. 출처(www.programiz.com)

 

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