Collection_EX
Posted 2015. 4. 10. 15:51package chap11;
import java.util.*;
// 제품( Product ) 클래스 만들기
// 멤버 변수 : 제품명( name ), 제품가격( price ), 모델명( modelName )
// 멤버메서드 : toString 메서드만 오버라이딩
// 생성자 : 모든 멤버변수를 입력받도록 구현
// 제품클래스를 set에 저장할 떄 동일한 정보의 객체는 저장되지 않도록 Product 클래스 수정
class Product implements Comparable<Object>{
String name;
int price;
String modelName;
Product( String name, int price, String modelName ){
this.name = name;
this.price = price;
this.modelName = modelName;
}
@Override
public String toString() {
return "Product [name=" + name + ", price=" + price + ", modelName="
+ modelName + "]";
}
@Override
public int hashCode() {
return name.hashCode() + price + modelName.hashCode();
}
@Override
public boolean equals(Object obj) {
if( obj instanceof Product ){
Product p = (Product)obj;
if( name.equals(p.name) && ( price == p.price ) && modelName.equals(p.modelName) )
return true;
else
return false;
}
return false;
}
// 기본 compareTo 오름차순임. 내림차순은 스왚해야함.
@Override
public int compareTo(Object o){
Product p = (Product)o;
return name.compareTo(p.name);
}
}
public class ProductEx {
public static void main(String[] args) {
MyTime t = new MyTime();
t.start();
Product[] items = {
new Product("TV", 100, "S1000"),
new Product("TV1", 100, "S2000"),
new Product("TV2", 100, "S3000"),
new Product("TV3", 100, "S4000"),
new Product("컴퓨터", 150, "CS500"),
new Product("컴퓨터", 150, "CS500"),
new Product("컴퓨터1", 165, "CS550"),
new Product("TV", 100, "S4000")
};
Set<Product> set = new HashSet<Product>();
for( Product p : items )
set.add(p);
for( Product p : set )
System.out.println(p);
System.out.println();
System.out.println();
// set2 조회시 제품명으로 오름차순 정렬되도록
// product 클래스 프로그램 수정
TreeSet<Product> set2 = new TreeSet<Product>();
for( Product p : items )
set2.add(p);
for( Product p : set2 )
System.out.println(p);
t.end();
}
}
'Java !!!' 카테고리의 다른 글
innerClass_Ex2 (0) | 2015.04.10 |
---|---|
enum (0) | 2015.04.10 |
Collection _ArrayList (0) | 2015.04.10 |
Collection _Iterator (0) | 2015.04.10 |
Collection_ HastSet (0) | 2015.04.10 |
- Filed under : Java !!!