컬렉션 프레임워크[Collection Framework]

devlsn96·2024년 7월 31일
0

java 언어 개념정리

목록 보기
22/27

1-1. Collection Framework란

  • 다수의 데이터를 쉽게 처리할 수 있는 표준화된 방법을 제공하는 클래스들로, 기존 배열형태의 자료 저장에서 좀더 다양한 데이터들을 저장하기 위한 필수 클래스이다.

1-2. Collection Framework 종류

1) HashMap 클래스

  • 데이터에 이름표를 적용하여 저장하기

  • HashMap 클래스는 Map 인터페이스를 상속받는 '자료 보관소'이기 때문에, 암묵적 객체 형변환의 규칙에 따라 Map 형태로 선언하고 HashMap 형태로 할당

  • 선언과 할당시에 HashMap의 이름표로 사용할 데이터형(String)과 HashMap에 저장할 데이터형을 클래스의 이름으로 명시해야 하는데,
    이를 '제너릭스'라 한다.

  • 제너릭스에 명시할 수 있는 데이터형은 반드시 클래스 이름이여야 하기 때문에 기본 자료형을 보관할 경우 Wrapper 클래스의 이름을 사용한다.

    	Map<String, 저장할 데이터의 클래스이름>data
    	= new HashMap<String, 저장할 데이터의 클래스이름>();
  • 기존에 저장된 데이터와 중복되는 이름이 저장될 경우,
    기존에 저장된 데이터를 덮어 씌우게 된다.

    	// 데이터를 저장할 배열 생성
    	// 제너릭 -> <값이름, 값종류>
    	
    	Map<String, Integer> hm 
    	= new HashMap <String, Integer>();
    	
    	// 데이터 추가는 put 메서드 사용
    	// - 중복을 허용하지 않는다.
    	hm.put("kor", 95);
    	hm.put("mat", 100);
    	hm.put("eng", 85);
    	
    	// 지정된 갯수 얻기
    	hm.put("eng", null); 	
    	System.out.println("HashMap size : " + hm.size()); 		
    	// 객체를 넣는 것이므로 null 사용가능
    	
    	// 데이터꺼내기
    	System.out.println(hm.get("kor"));
    	System.out.println(hm.get("mat"));
    	System.out.println(hm.get("eng"));

2) ArrayList 클래스

  • 무제한 확장 가능한 배열

  • ArrayList는 List 인터페이스를 상속받는 클래스로, 데이터를 이름표 없이 무제한으로 보관할 수 있다.

  • ArralyList에 추가되는 데이터는 순차적으로 배열과 같은 인덱스 번호를 부여 받는다.

  • 상위 인터페이스 형으로 선언하고 ArrayList클래스로 객체를 할당하며, 선언과 할당시에는 보관하고자 하는 자료형에 대한 제너릭스를 명시한다.

    	List <저장할 데이터의 클래스이름> list
    	= new ArrayList<저장할 데이터의 클래스이름>();
    
    	// 객체 생성시 제너릭스의 사용
    	// - 클래스 이름 오른쪽에 <자료형>의 형식으로 표현
    	// 이때 자료형에는 클래스타입만 가능하다
    	// 기본 데이터형을 사용하고자 하는 경우에는
    	// 해당 데이터형의 WrapperClass를 사용해야 한다.
    	
    	List<Integer> numberList = new ArrayList<Integer>();
    	
    	//데이터추가
    	numberList.add(10);
    	numberList.add(20);
    	numberList.add(30);
    	numberList.add(40);
    	numberList.add(50);
    	numberList.add(60);
    	numberList.add(70);
    	numberList.add(80);
    	numberList.add(90);
    	
    	// 추가된 데이터의 수량
    	int count = numberList.size();
    	System.out.println("데이터의 크기 : " + numberList.size());
    			
    	// 5번째 요소의 값얻기
    	int value = numberList.get(4);
    	System.out.println("5번째 요소의 값 : " + numberList.get(4));
    	
    	// 5번째 요소의 값 삭제
    	numberList.remove(4);
    	
    	// 하나 삭제후 전체 크기 재배치 -> 8개
    	count = numberList.size();
    	System.out.println("데이터의 크기 : " + count);
    	
    	// 5번째 요소의 값 다시 얻기
    	value = numberList.get(4);
    	System.out.println("5번째 요소의 값 : " + value);
    	
    	// 5번째 자리에 데이터 추가
    	numberList.add(4,123);
    	value = numberList.get(4);
    	System.out.println("5번째 요소의 값 : " + value);
    	
    	// 전체 삭제
    	numberList.clear();
    	count = numberList.size();
    	System.out.println("데이터의 크기 : " + count);
    	
profile
Quantum Jump to class for java….

0개의 댓글