[JAVA] 컬렉션 프레임워크

형이·2023년 9월 4일
0

JAVA

목록 보기
17/19
post-thumbnail

📝 JAVA

🖥️ 1. 컬렉션 프레임워크

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

1-1. Collection Framework 종류


🖥️ 2. HashMap 클래스

  • 데이터에 이름표를 적용하여 저장하기
  • HashMap 클래스는 Map 인터페이스를 상속받는 '자료 보관소' 이기 때문에,
    암묵적으로 객체 형변환의 규칙에 따라 Map 형태로 선언하고 HashMap형태로
    할당한다.
  • 선언과 할당 시에 HashMap의 이름표로 사용할 데이터 형과 HashMap에 저장할
    데이터형을 클래스의 이름으로 명시해야 하는데, 이를 '제너릭스'라 한다.
  • 제너릭스에 명시할 수 있는 데이터 형은 반드시 클래스 이름이여야 하기 때문에
    기본 자료형을 보관할 경우 Wrapper클래스의 이름을 사용해야 한다.

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

2-1. 예시

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

🖥️ 3. ArrayList 클래스

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

    	List<저장할 데이터의 클래스이름> list
    		= new ArrayList<저장할 데이터의 클래스이름>();

3-1. 예시

		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("데이터의 크기 : " + count);
		
		// 5번째 요소의 값 얻기
		int value = numberList.get(4);
		System.out.println("5번째 요소의 값 : " + value);
		
		// 5번째 요소를 삭제
		numberList.remove(4);
		
		// 하나를 삭제 후, 전체 크기 다시 조회
		count = numberList.size();
		System.out.println("데이터의 크기 : " + count);
		
		// 5번째 요소의 값을 다시 얻기
		value = numberList.get(4);
		System.out.println("5번째 요소의 값 : " + value);
		
		// 5번째 자리에 데이터 추가
		numberList.add(4, 1232);
		value = numberList.get(4);
		System.out.println("5번째 요소의 값 : " + value);
		
		// 전체 삭제
		numberList.clear();
		count = numberList.size();
		System.out.println("데이터 크기 : " + count);

0개의 댓글