Collection_EX

Posted 2015. 4. 10. 15:51

package 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

Collection _ArrayList

Posted 2015. 4. 10. 15:50

package chap11;
//collection -> java.util
import java.util.*;

// Collection jdk 1.2에서 추가된 내용
// 컴파일에서 추가되는 객체의 자료형을 표시하기 위한 방법이 추가됨( jdk 5.0 )-> 제네릭 표현

// List : 순서가 유지 ( add 순서 )

// ArrayList, Vector
// ArrayList의 멤버메서드는 스레드에 동기화 되어있지 않다.
// Vector의 멤버메서드는 스레드에 동기화 되어있다.

// ArrayList 예제

public class ArrayListEx1 {
 public static void main(String[] args) {
  List<Integer> list1 = new ArrayList<Integer>();
  // 1 : 자동으로 Integer 객체로 형변환 5.0이후만 가능. Boxing
  list1.add(1); // list1.add( new Integer(1) );
  list1.add(2);
  list1.add(5);
  list1.add(4);
  list1.add(0);
  list1.add(3);
  
  ArrayList<Object> list2 = new ArrayList<Object>( list1.subList(1, 4) ); // index 1번부터 4번전까지.
  print( list1, list2 );
  // Collections 클래스
  // Collection  인터페이스
  Collections.sort(list1);
//  Collections.sort(list2); // Object일 경우 관련메서드 compareTo()
  print( list1, list2 );
  // list1 안에 list2 전부 포함되니 ?
  System.out.println(list1.containsAll(list2));
  
  list2.add("B");
  list2.add("C");
  print( list1, list2 );
  // index 3번째에 A를 넣는다, 아무것도 없다면 맨 앞에 들어간다.
  list2.add(3,"A");
  print( list1, list2 );
  // 기존내용을 변경
  list2.set( 3,  "AA");
  print( list1, list2 );
  
  //개선된 for문으로 사용 가능
  for( Object o : list1 ){
   System.out.println(o);
  }
  System.out.println();
 }

 private static void print(List list1, ArrayList list2) {
  // TODO Auto-generated method stub
  System.out.println("list1 :" + list1);
  System.out.println("list1 :" + list2);
  System.out.println();
 }
}

 

'Java !!!' 카테고리의 다른 글

enum  (0) 2015.04.10
Collection_EX  (0) 2015.04.10
Collection _Iterator  (0) 2015.04.10
Collection_ HastSet  (0) 2015.04.10
Collection_ TreeSet  (0) 2015.04.10

Collection _Iterator

Posted 2015. 4. 10. 15:50

package chap11;
import java.util.*;

// Iterator 인터페이스
// Collection 객체는 모두 Iterator 객체로 변환이 가능하다.
// 변환 메서드 : Iterator()
// Iterator 인터페이스의 멤버 메서드
//  hasNext() : 조회할 객체(요소, Element) 존재 ?
//  next()   : 순서해당하는 객체를 리턴
//  remove()  : 반드시 next() 메서드 이후 사용가능함
//     객체를 삭제 가능
// Enumeration 인터페이스 : Iterator 구버전
//  Vector, Hashtable에서만 사용 가능.
//   멤버메서드
//    hasMoreElement() : 객체가 존재 여부 확인, hasNext()와 동일하다.
//    nextElement() : 순서에 해당하는 객체를 리턴, next()와 동일.
//    삭제는 불가.

public class InteratorEx1 {
 public static void main(String[] args) {
  List<String> list = new ArrayList<String>();
  Iterator<String> it;

  list.add("1");list.add("2");list.add("3");list.add("4");list.add("5");
  for( int i=0 ; i<list.size() ; i++ ){
   System.out.print( list.get(i) );
  }
  System.out.println();
  System.out.println("Iterator로 조회");
  it = list.iterator();
  while( it.hasNext() ){
   System.out.println("while문으로");
   System.out.println( it.next() );
  }
  
  for( it = list.iterator() ; it.hasNext() ; ){
   System.out.println("for문으로");
   System.out.println(it.next() );
  }
  
  List<String> list2 = new Vector<String>();
  list2.add("1");list2.add("2");list2.add("3");list2.add("4");list2.add("5");
  for( String v : list2 ){
   System.out.print( v );
  }
  System.out.println();
  System.out.println("Iterator list2 조회");
  it = list2.iterator();
  while( it.hasNext() ){
   System.out.println( "while");
   System.out.println( it.next() );
  }
  System.out.println("Enumeration 객체로 list2 조회");
  Enumeration e = ( (Vector)list2 ).elements();
  while( e.hasMoreElements() ){
   System.out.println(e.nextElement());
  }
  
  Set<String> set = new HashSet<String>();
  set.add("1");set.add("2");set.add("3");set.add("4");set.add("5");
  for( String z : set ){ //set은 get이 없어서 for 사용.
   System.out.print(z);
  }
  System.out.println();
  it = set.iterator();
  while( it.hasNext() ){
   System.out.println(it.next());
  }
 }
}

 

'Java !!!' 카테고리의 다른 글

Collection_EX  (0) 2015.04.10
Collection _ArrayList  (0) 2015.04.10
Collection_ HastSet  (0) 2015.04.10
Collection_ TreeSet  (0) 2015.04.10
Collection_ Set 오름차순 내림차순  (0) 2015.04.10
« PREV : 1 : ··· : 11 : 12 : 13 : 14 : 15 : 16 : 17 : ··· : 77 : NEXT »