배열의 단점 : 길이를 정해놓으면 수정할 수 없이 고정됨.
컬렉션 프레임워크는 그런 문제점을 해결하고자 만들어진 것이라고 보면 됨.
Map<String, 저장할 데이터의 클래스이름> data = new HashMap<String, 저장할 데이터의 클래스이름> ();
import java.util.HashMap;
import java.util.Map;
public class Main01 {
public static void main(String[] args) {
// 데이터를 저장할 배열 생성
// 제너릭 --> <값의 이름, 값의 종류>
Map<String, Integer> hm = new HashMap<String, Integer> ();
// 데이터 추가는 put 메서드 사용
// --> 중복을 허용하지 않는다.
hm.put("aaa", 111);
hm.put("bbb", 222);
hm.put("aaa", 444);
hm.put("ccc", 333);
hm.put("ccc", null); // 객체를 넣는 것이므로 Null 사용 가능
// 저장된 갯수 얻기
System.out.println("HashMap size : " + hm.size());
// 데이터 꺼내기
System.out.println(hm.get("aaa"));
System.out.println(hm.get("bbb"));
System.out.println(hm.get("ccc"));
}
}
List<저장할 데이터의 클래스 이름> list = new ArrayList<저장할 데이터의 클래스이름>();
import java.util.ArrayList;
import java.util.List;
public class Main02 {
public static void main(String[] args) {
// 객체 생성시 제너릭스의 사용
// --> 클래스 이름 오른쪽에 <자료형>의 형식으로 표현한다.
// 이때 자료형에는 클래스타입만 가능하다.
// 기본 데이터형을 사용하고자 하는 경우에는
// 해당 데이터형의 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("데이터 크기: " + count);
// 5번째 요소의 값 얻기
int value = numberList.get(4);
System.out.println("5번째 요소의 값: " + value);
// 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);
}
}
package study.java.model;
// 주소록 데이터를 표현하기 위한 Java Beans
public class People {
private String name;
private String phoneNo;
public People(String name, String phoneNo) {
super();
this.name = name;
this.phoneNo = phoneNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
@Override
public String toString() {
return "People [name=" + name + ", phoneNo=" + phoneNo + "]";
}
}
import java.util.ArrayList;
import java.util.List;
import study.java.model.People;
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);
}
// 출력하기
for (int i = 0; i < plist.size(); i++) {
// List에 저장된 데이터를 하나 꺼내면,
// People 클래스 형의 객체다.
People item = plist.get(i);
System.out.println(item.toString());
}
}
}