当前,我从列表中获取数据,但我是随机获取数据,如果有人可以根据 dayInNumber 帮助我对数据进行排序,则我已附加了数据库图片。我想对数据进行排序,例如1 2 3 4 .. 14 enter image description here
谢谢
答案 0 :(得分:0)
对于排序列表,我们可以使用Collections类的sort(your_list)方法。这将按照自然顺序(即升序)对列表进行排序。由于您希望它根据特定功能进行排序,因此您应该以与列表相同的类型来实现Comparator接口。您将必须实现compareTo方法。请参考以下代码以获取FYR:-`
public class Temp implements Comparable<Temp> {
Temp(int a, int b) {
this.a = a;
this.b = b;
}
int a;
int b;
public static void main(String[] args) {
Temp t1 = new Temp(11,2);
Temp t2 = new Temp(9,5);
Temp t3 = new Temp(1,7);
Temp t4 = new Temp(10,9);
Temp t5 = new Temp(14,11);
ArrayList<Temp> al = new ArrayList<Temp>();
al.add(t1);
al.add(t2);
al.add(t3);
al.add(t4);
al.add(t5);
Collections.sort(al);
for(Temp i:al) {
System.out.println(i.a+"," +i.b);
}
}
@Override
public int compareTo(Temp o) {
if(a==o.a) {
return 0;
}
else if(a>o.a) {
return 1;
}
else {
return -1;
}
}
}`
答案 1 :(得分:0)
假设您将Client
类定义为
class Client {
private long dayInNumber;
private String clientName;
private String day;
//setters and getters ommitted for brevity and clarity
}
然后您有一个客户列表
List<Client> clients = new ArrayList<>();
要对dayInNumber
进行排序,可以假定数据来自SQLite,也可以在SQL(order by
子句)中对其进行排序。
或者您可以创建Comparator<T>
个对象的自定义Client
来按以下代码进行排序
import java.util.Comparator;
public class ClientDayInNumberComparator implements Comparator<Client> {
@Override
public int compare(Client c1, Client c2) {
if(c1.getDayInNumber() > c2.getDayInNumber()) return 1;
else if(c1.getDayInNumber() < c2.getDayInNumber()) return -1;
else
return 0;
}
}
这将按dayInNumber升序对客户端进行排序(1、2、3,... N)。然后按如下所示使用它
List<Client> clients = new ArrayList<>();
Collections.sort(clients, new ClientDayInNumberComparator());
Collections
包装在java.utils
软件包中,您需要将其导入