- 다수의 데이터를 쉽게 처리할 수 있는 표준화된 방법을 제공하는 클래스
- 기존 배열형태의 자료 저장에서 좀더 다양한 데이터들을 저장하기 위한 필수
클래스
- 데이터에 이름표를 적용하여 저장하기
- HashMap 클래스는 Map 인터페이스를 상속받는 '자료 보관소' 이기 때문에,
암묵적으로 객체 형변환의 규칙에 따라 Map 형태로 선언하고 HashMap형태로
할당한다.
- 선언과 할당 시에 HashMap의 이름표로 사용할 데이터 형과 HashMap에 저장할
데이터형을 클래스의 이름으로 명시해야 하는데, 이를 '제너릭스'라 한다.
제너릭스에 명시할 수 있는 데이터 형은 반드시 클래스 이름이여야 하기 때문에
기본 자료형을 보관할 경우 Wrapper클래스의 이름을 사용해야 한다.Map<String, 저장할 데이터의 클래스 이름> data = new HashMap<String, 저장할 데이터의 클래스 이름>();
- 기존에 저장된 데이터와 중복되는 이름이 저장될 경우, 기존에 저장된 데이터를
덮어 씌우게 된다.
// 데이터를 저장할 배열 생성
// 제너릭 → <값의 이름, 값의 종류>
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") );
- ArrayList는 List 인터페이스를 상속받는 클래스로, 데이터를 이름표 없이
무제한으로 보관할 수 있다.
- ArrayList에 추가되는 데이터는 순차적으로 배열과 같은 인덱스 번호를
부여 받는다.
상위 인터페이스 형으로 선언하고 ArrayList 클래스로 객체를 할당하며,
선언과 할당 시에는 보관하는 자료형에 대한 제너릭스를 명시한다.List<저장할 데이터의 클래스이름> list = new ArrayList<저장할 데이터의 클래스이름>();
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);