2012-10-10 44 views
-3

我有一個Item類,它有id,count,name作爲實例變量。我想根據計數對項目進行排序。請告訴我如何去做。任何方法,我可以在我的項目類中定義的項目進行排序。感謝從項目類別排序元素

下面是我的物品類別

  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

編寫自定義比較,並使用

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#sortArrays#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);