我有一个Item类,它有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 :(得分:2)
您需要实现Comparable接口。
请参阅http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html
答案 1 :(得分:2)
实现Comparable接口并编写逻辑以进行排序。
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
答案 2 :(得分:1)
您的班级应该实施Comparable和compareTo()方法。这是一个example。
答案 3 :(得分:0)
编写自定义比较器并使用
Collections.sort(collections, yourComparator);
答案 4 :(得分:0)
查看the tutorial以排序对象。
特别是你应该决定是否需要:
请注意,如果您愿意,可以同时执行这两项操作。
答案 5 :(得分:0)
- 使用java.lang.Comparable
界面,如果您想以仅1路对其进行排序。
- 如果您想以多种方式对其进行排序,请使用java.util.Comparator
界面。
答案 6 :(得分:-1)
使用Collections#sort
和Comparator
:
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);