我是java的新手,我真的不知道如何使用比较器接口.我有一个ArrayList的Item以S Inventory类和Item类.在Item我写的课上:
public class Item implements Comparator<Item> {
//stuff
...
@Override
public int compare(Item a, Item b) {
if (a.getID().compareToIgnoreCase(b.getID())>0)
return 1;
else if (a.getID().compareToIgnoreCase(b.getID())<0)
return -1;
else
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
getID()方法只提供id,我必须使用它来按字母顺序排列项目.我不确定这是不对的,它让我把@Override注释,我不知道为什么.我还写了一个界面,只是说:
public interface Comparator<Item>
{
int compare(Item a, Item b);
}
Run Code Online (Sandbox Code Playgroud)
我不确定那一点.另外,我如何实现此方法来对库存类中创建的arraylist进行排序?
谢谢,如果我的问题没有意义或需要澄清,请告诉我.
我有一个库存类,它创建一个充满对象 Item 的 ArrayList,它也是一个类。我知道我必须调用
Collections.sort(items);才能对 ArrayList 进行排序(顺便说一下,它称为项目)。作业说我必须在 Item 类上使用一个接口,我不知道是否要实现 Comparator 或 Comparable,然后为方法compareTo()或compare()方法编写什么。另外,我Collections.sort(items)在声明 ArrayList 后立即接到电话,这样可以吗?
Comparable<Item>编辑:我的老师刚刚澄清说她希望我们在 Item 类上实现。