본문 바로가기

언어/Java

ArrayList, HashSet, HashMap 예시

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