2012-10-10 45 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);