Collection Framework

위수현·2023년 2월 3일
0

Collection Framework란?

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

-> 인덱스 값을 호출해 출력값을 불러오는 '배열'과는 다르게 값을 특정 이름으로 지정해 출력값을 불러오는 방식

Collection Framework의 종류

-> ArrayList와 HashMap이 가장 많이 사용된다.

HashMap 클래스

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

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

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

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

🔎 기존에 저장된 데이터와 중복되는 이름이 저장될 경우, 기존에 저장된 데이터를 덮어 씌우게 된다
( 재생성은 불가능 / 수정은 가능 )

-> 다음과 같이 <영>이라는 값이 80으로 할당되었지만, 후에 70으로 재할당이 되어서 출력값이 수정되었다.

<array(배열)과 가장  차이>
HashMap은 순서가 상관이 없음
<array>  'ㅁㅁㅁ'  각 방의 정보를 호출하려면 인덱스 
번호를 통함 ( 순서중요o )

<HashMap> 'ㅁㅁㅁ' 각 방의 정보를 	호출하려면 
이름표를 통함 ( 순서중요x )
	Map<String, 저장할 데이터의 클래스	이름> data
	= new HashoMap<String, 저장할 	이터의 클래스이름>();

ArrayList

🔎 무제한 확장 가능한 배열

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

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

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

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

-> 배열처럼 각 인덱스에 int값이 할당되었다고 하면, 객체를 생성하여 arraylist의 인덱스에 객체를 할당하여 출력값을 얻을 수도 있다.

예제)

<Member 클래스>

-> 생성자, getter & setter, toString() 호출

<1>

🔎제너릭
<값의 이름, 값의 종류> 객체 생성
🔎데이터의 추가
*.put(K,V) 메서드로 사용
🔎새로운 객체의 추가
String형의 데이터는 물론이고,
null값도 입력될 수 있다.
🔎저장된 값을 열기
*.size();메서드 사용
🔎저장된 값을 콘솔창에 꺼내기
*.get(); 메서드 사용

<2>

🔎데이터의 수량
*.size(); 메서드 사용
🔎저장된 값 꺼내기
*.get(); 메서드 사용
🔎저장된 값의 삭제
*.remove(); 메서드 사용
🔎새로운 데이터의 추가
*.add(i, "~~"); 메서드 사용
🔎전체 삭제
*.clear(); 메서드 사용

<3>

profile
수현

0개의 댓글