프로그래밍

[자바 기초] day12 : 컬렉션 프레임워크 본문

자바/자바 기초

[자바 기초] day12 : 컬렉션 프레임워크

시케 2023. 5. 19. 11:48
728x90
반응형

2023.05.18.목

컬렉션 프레임워크

컬렉션이란?

자바에서 컬렉션은 데이터 묶음이다

 

즉, 컬렉션 프레임워크란데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다

 

List

좀 더 편리한 배열이라고 생각하면 쉽다

  1. 중복을 허용한다
  2. 순서가 있다
  3. 크기를 몰라도 선언 가능
  4. toString 오버라이딩
  5. 다양한 메서드 제공

ex) Vector, ArrayList, LinkedList, Stack, Queue

 

중복을 허용하며 순서가 있어 인덱스가 있다

무엇보다 가장 큰 장점은 배열과 다르게 크기를 몰라도 선언할 수 있다

 

arrayList 는 toString이 오버라이딩 되어 있기 때문에 출력하면 정리되어 나온다

add(), remove(), get(), size() 등등 다양한 기능 메서드 기본 제공되어 다 쉽게 사용할 수 있다

 

다른 자료형을 넣을 수 있지만 대부분은 같은 자료형만 넣는다

이는 제너릭<> 연산자로 해당 타입만 저장하도록 강제성을 부여할 수 있다

 

package class01;

import java.util.ArrayList;

public class Test01 {

	public static void main(String[] args) {
		
		ArrayList<Integer> data = new ArrayList<>();
		data.add(10);
		data.add(0,20);
		data.add(0,30);
		data.add(0,30);
		data.add(1,40);
		data.remove(0);
		data.clear();
		
		
		System.out.println(data); 
		System.out.println(data.isEmpty()); 
		//System.out.println(data.get(0)); 
		
		data.add("사과"); // 오류 발생
		data.add(10);
		data.add(3.14); // 오류 발생
		System.out.println(data);
		

	}

}

 

 

set

집합 인터페이스이다

  1. 중복 비허용한다
  2. 순서가 없다
  3. 다양한 타입 저장 가능하다

ex) HashSet, TreeSet

 

set은 abstract 추상 클래스이기 때문에 new 연산을 할 수 없다

set 자체는 부모 클래스이니 자식인 HashSet(), TreeSet() 생성해야 한다

 

set은 순서가 없어서 인덱스로 값을 찾거나 정렬할 수 없다

 

set 또한 다른 자료형을 넣을 수 있지만 대부분은 같은 자료형만 넣는다

이는 제너릭<> 연산자로 해당 타입만 저장하도록 강제성을 부여할 수 있다

 

package class01;

import java.util.HashSet;
import java.util.Set;

public class Test02 {

	public static void main(String[] args) {
		HashSet<Integer> data= new HashSet<Integer>();
		
		data.add(10);
		data.add(10);
		data.add(10);
		data.add(1234);
		data.add(1);
		data.add(2);
		data.add(12);
		data.add(13);
		data.add(11);
		data.add("apple"); // 오류
		
		System.out.println(data);

	}

}

 

Map은 다음시간에 알아보도록 하자

728x90
반응형
Comments