import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import com.my.product.dto.Product;
import com.my.customer.dto.Customer;
public class CollectionTest {
public static void test(Collection c) {
c.add("one");
// c.add(new Integer(2)); // deprecated 문법, 예전 버전에서는 쓰였으나 현재버전 사용안하는것
// 아래걸로 대체
c.add(Integer.valueOf(2)); //boxing, c.add(2); 컴파일 시 autoboxing
c.add(Float.valueOf(3.0F));// c.add(3.0F);
c.add("one");
c.add(Boolean.valueOf(false));// c.add(false);
c.add(new Product("C0001", "아메리카노", 1000));
c.add(new Product("C0001", "라테", 2000));
System.out.println("요소갯수:" + c.size());
System.out.println(c); // c.toString() 메소드 자동호출됨
//컬렉션의 toString X 그 인터페이스를 구현한 하위클래스 쪽의 오버라이딩된 메소드가 호출
c.remove("one"); // 무조건 첫번째 요소만 삭제, 모두 다 삭제 X
System.out.println("one객체 삭제됨");
/*
Iterator it = c.iterator();
while(it.hasNext()) { // hasNext(); 방문할 요소가 있는가
Object e = it.next(); //요소방문
System.out.println("저장된 요소:" + e);
};*/
// 위의 /**/ 향상된 for문으로 수정
for(Object e : c) {
System.out.println("저장된 요소:" + e);
}
}
public static void test(Map m) {
m.put("one", new Date()); //1
m.put("two", new String("second")); //2
m.put("one", Integer.valueOf(3)); //
m.put("four", Float.valueOf(4.5F)); //3
m.put("five", Boolean.valueOf(false)); // 4
m.put(new Product("C0001", "아메리카노", 1000), "커피1"); // 5
m.put(new Product("C0001", "라떼", 2000), "커피2"); //
m.put(new Customer("id1", "p1"), "고객1"); // 6
m.put(new Customer("id1", "p2"), "고객21"); // 7
System.out.println("요소갯수:" + m.size());
System.out.println(m);
Product p = new Product();
p.setProdNo("C0001");
System.out.println("C0001상품키의 값은" + m.get(p));
// m.get(new Product);
}
public static void main(String[] args) {
Collection c;
// c = new Collection(); 이건 불가능. 인터페이스 타입으로 직접 객체 생성 불가능
System.out.println("----ArrayList----");
c = new ArrayList();
test(c);
System.out.println("----HashSet----");
test(new HashSet());
System.out.println("----HashMap----");
test(new HashMap());
}
}
※ Hashcode 메서드 만들기
public class Product{
private String prodNo;
private String prodName;
private int prodPrice;
@Override
public int hashCode() {
return Objects.hash(prodNo);
}
}
'언어 > Java' 카테고리의 다른 글
LIFO와 FIFO (0) | 2023.08.08 |
---|---|
Properties 예시 (0) | 2023.08.08 |
Product 예제 3 (1) | 2023.08.04 |
Product 예제 2 (0) | 2023.08.04 |
제네릭(element generic), ArrayList, HashSet 예시 (0) | 2023.08.04 |