Java 对于long类型,方法compare(long,long)未定义
我需要制作一个比较器,根据其Java 对于long类型,方法compare(long,long)未定义,java,comparator,Java,Comparator,我需要制作一个比较器,根据其long类型的一个变量对对象列表进行排序 public class ParticipantIndexComparator implements Comparator<Integer> { final List<Participant> participants; public ParticipantIndexComparator(ArrayList<Integer> numbersToS
long
类型的一个变量对对象列表进行排序
public class ParticipantIndexComparator implements Comparator<Integer> {
final List<Participant> participants;
public ParticipantIndexComparator(ArrayList<Integer> numbersToSort) {
participants=new ArrayList<Participant>();
for (int i=0;i<numbersToSort.size();i++)
{ participants.add(i,competition.participant.get(numbersToSort.get(i))); participants.get(i).comparator=numbersToSort.get(i);}
}
@Override
public int compare(Integer i1, Integer i2) {
long l1 = participants.get(i1).kpTime.get(kpSelected);
long l2 = participants.get(i2).kpTime.get(kpSelected);
return Long.compare(l1, l2);
}
}
公共类ParticipantIndexComparator实现Comparator{
最后与会者名单;
公众参与指数比较器(ArrayList Numbers ToSort){
参与者=新的ArrayList();
对于(int i=0;i此方法自Java 7以来就存在。您可能正在使用Java 6或更旧版本的Java。在这些以前的版本中,您只需使用
Long.valueOf(l1).compareTo(Long.valueOf(l2));
这是您的朋友。请阅读。如果您遇到Integer.compare在将Maven项目导入Eclipse后未定义,请检查项目属性以确保它使用的是1.7 JRE。出于某种原因,导入将1.6 JRE与我的项目相关联,即使POM和我的系统默认值为1.7.*.参与者。获取(i).comparator=numbersToSort.get(i)
为什么要给名为comparator
的东西分配符号号?@Woot4Moo:签名是正确的。OP想要比较整数,而不是longs。这些整数用于查找与整数关联的长值,并且应该根据这个长值进行排序。就像按照姓氏对Person类型的人进行排序一样类型为String.JB Nizet,没错!!我在Java 6中使用它,因为我为Android编写了很多代码谢谢!我问这个问题已经用了2到3次不同的方式,人们总是试图比较两个索引和变量,而不是变量本身。在这里,人们通常不看这个问题。例如,当我在看为了在Android中以与文本相同的方式放大多行视图,当第一行被填充时,它从下一行开始。我的答案是一个简单的GridView,但人们开始给我关于如何处理文本的建议