숨 참고 JAVA 다이브 🌊 (19) - 컬렉션 프레임워크

joyfulwave·2022년 8월 24일
0

숨 참고 JAVA 다이브

목록 보기
19/21

어려울 거 같아서 미뤄뒀던 프로그래밍 공부 이번에 숨 딱 참고 Java 다이브 💦


💡 Collection Framwork

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




💡 HashMap

  • HashMap 클래스는 Map 인터페이스를 상속받는 '자료보관소' 이기 때문에, 암묵적 객체 형변환 규칙에 따라 Map 형태로 선언하고 HashMap 형태로 할당해요.
  • 선언과 할당시에 HashMap의 이름표로 사용할 데이터형(String)과 HashMap에 저장할 데이터형을 클래스의 이름으로 명시해야 하는데, 이를 '제너릭스'라 해요.
  • 제너릭스에 명시할 수 있는 데이터형은 반드시 클래스 이름이여야 하기 때문에 기본 자료형을 보관할 경우 Wrapper클래스의 이름을 사용해요.
  // <> 이 꺽새와 그 내부를 제너릭스라고 한다.
  Map<String, 저장할 데이터의 클래스이름> data = new HashMap<String, 저장할 데이터의 클래스이름>();
  • 기존에 저장된 데이터와 중복되는 이름이 저장될 경우, 기존에 저장된 데이터를 덮어씌우게 돼요.

⚫️ HashMap 예제

    import java.util.HashMap;
    import java.util.Map;

    public class Main01 {

	public static void main(String[] args) {

		// 데이터를 저장할 배열 생성
		// 제너릭 -> <값의이름, 값의 종류>
		// 뒤에 제너릭은 생략이 가능하다.
		//Map<String, Integer> hm = new HashMap<>();
		
		Map<String, Integer> hm = new HashMap<String, Integer>();
		
		hm.put("영어", 95);
		hm.put("수학", 80);
		hm.put("국어", null); // 객체를 넣는 것이므로 null 사용 가능		
		hm.put("영어", 100); // 중복할당이 아닌 95에 덮어쓰기가 된다.
		
		System.out.println("HashMap size : " + hm.size());
		
		// 데이터 꺼내기		
		System.out.println(hm.get("영어"));
		System.out.println(hm.get("수학"));
		System.out.println(hm.get("국어"));
		
	}
    
    /*
    출력결과)
    HashMap size : 3
    100
    80
    null
    */

}



💡 ArrayList

  • ArrayList는 List 인터페이스를 상속받는 클래스로, 데이터를 이름표 없이 무제한으로 보관할 수 있어요.
  • ArrayList에 추가되는 데이터는 순차적으로 배열과 같은 인덱스 번호를 부여받아요.
  • 상위 인터페이스형으로 선언하고 ArrayList클래스로 객체를 할당하며, 선언과 할당시에는 보관하고자 하는 자료형에 대한 제너릭스를 명시해요.
	List<저장할 데이터의 클래스 이름> list = new ArrayList<저장할 데이터의 클래스 이름>();

⚫️ ArrayList 예제

    import java.util.ArrayList;
    import java.util.List;

	public class Main03 {

	public static void main(String[] args) {
		/*
		 * List를 사용하는 가장 일반적인 방법은,
		 * 사용자 정의 클래스에 대한 객체를 포함하도록 지정하는 것이다.
		 */
		
		// 객체를 담기위한 ArrayList
		List<People> plist = new ArrayList<People>();
		
		// 10명의 데이터를 임의로 추가
		for(int i = 0; i < 10; i++) {
			People p = new People("회원" + i, "010-1234-567" + i);
			plist.add(p);
		}
		
		// 출력하기 toString();
		for(int i = 0; i <plist.size(); i++) {
			// list에 저장되 데이터를 하나 꺼내면,
			// People클래스 형의 객체다.
			People item = plist.get(i);
			System.out.println(item.toString());
		}
	}
    
    /*
    출력결과)
    People [name=회원0, phoneNo=010-1234-5670]
    People [name=회원1, phoneNo=010-1234-5671]
    People [name=회원2, phoneNo=010-1234-5672]
    People [name=회원3, phoneNo=010-1234-5673]
    People [name=회원4, phoneNo=010-1234-5674]
    People [name=회원5, phoneNo=010-1234-5675]
    People [name=회원6, phoneNo=010-1234-5676]
    People [name=회원7, phoneNo=010-1234-5677]
    People [name=회원8, phoneNo=010-1234-5678]
    People [name=회원9, phoneNo=010-1234-5679]
    */

}



다음 다이브에서 또 만나요 🌊




출처
https://media.giphy.com/media/l2Je1bFuOpkNpyqYM/giphy.gif
https://media.giphy.com/media/Jbb3KS22397YQ/giphy.gif

0개의 댓글