2012-10-10 2 views
-3

id, count, name을 인스턴스 변수로 가지는 Item 클래스가 있습니다. 개수에 따라 항목을 정렬하고 싶습니다. 그것에 대해 어떻게 말해 줄래. 내 항목 클래스에서 항목을 정렬하도록 정의 할 수있는 모든 메서드. 항목 클래스의 요소 정렬

감사

다음은 내 항목 클래스

  public class Item { 

private String id; 
private String count; 
private String name; 

Item() { 
} 

public String getcount() { 
    return this.count; 
} 

public Item(String name) { 
    this.name = name; 
    this.id = ""; 

} 

public Item(String id, String name) { 
    this.name = name; 
    this.id = id; 

} 

public Item(String id, String name,String count) { 
    this.name = name; 
    this.id = id; 
    this.count=count; 
} 




public String getItemName() { 
    return this.name; 
} 

public String getItemId() { 
    return this.id; 
} 

public void createItem(String id, String name) { 
    this.name = name; 
    this.id = id; 
} 

public Item returnItems(ItemList itemset) { 
    Item item = null; 

    return item; 
} 
} 

입니다 그리고 난 내가 항목을 보유하고,뿐만 아니라 itemList에 클래스가 있습니다.

public class ItemList implements Iterable<Item> { 

private List<Item> hold = new ArrayList<Item>(); 

ItemList(Item item) { 

    // hold = new ArrayList<Item>(); 
    this.hold.add(item); 
} 

ItemList() { 
    //throw new UnsupportedOperationException("Not yet implemented"); 
} 

public List<Item> getItemList() { 
    return this.hold; 

} 

public void addItems(Item item) { 
    //hold = new ArrayList<Item>(); 
    this.hold.add(item); 
} 

@Override 
public Iterator<Item> iterator() { 
    Iterator<Item> item = hold.iterator(); 
    return item; 
} 

}

+0

여기에 요청하기 전에 구글에서 검색 할 수 있을까요? https://www.google.es/search?q=sort+class+in+java 거기에 많은 정보가 있습니다 ... – Pigueiras

답변

0

사용자 지정 비교기를 작성하고 당신은 Comparable 인터페이스를 구현해야

Collections.sort(collections, yourComparator); 
2

구현 인터페이스를 비교하고 정렬 순서에 대한 논리를 작성하십시오.

 public class Item implements Comparable<Item>{ 
     private String id; 
     private String count; 
     private String name; 

     Item() {} 
     ...  
     public int compareTo(Item item1) { 
     return this.count.compareTo(item1.count); 
     } 
    } 

이제 Collections#sort 또는 Arrays#sort하여 목록 또는 배열을 정렬 할 수 있습니다.

+0

이상하지만,'count' 속성은 숫자가 아니라'String'입니다. –

+0

통지 해 주셔서 감사합니다. 나는 정말로 그것을 놓쳤다. –

0

개체 정렬을 위해 the tutorial을 확인하십시오. 특히

당신이해야하는지 여부를 결정해야합니다 :

  1. 이 (자연 정렬에 대한 - 정상적으로 주문 컬렉션 예)를 Comparable 인터페이스를 구현 작성하거나
  2. 자신의 Comparator (당신이 ' 다른 시나리오의 여러 필드로 여러 가지 방법으로 정렬 할 것입니다.)

원하는 경우 모두 수행 할 수 있습니다.

0

- 사용 java.lang.Comparable 인터페이스, 당신은 단 1 개 방법에 정렬합니다.

- 사용 java.util.Comparator 인터페이스, 당신은 1 개 이상의 방법에 정렬합니다.

-1

사용 Collections#sortComparator :

List<Item> lstItem = new ArrayList<Item>(); 
//fill the data... 
Comparator<Item> comparator = new Comparator<Item>() { 
    public int compareTo(Item i1, Item i2) { 
     return i1.count.compareTo(i2.count); 
    } 
}; 
Collections.sort(lstItem, comparator);