如果你仔细观察的Collections API,您将看到您在您的处置两个选项:
1)让你的GetTraders类实现可比接口并调用
public static <T extends Comparable<? super T>> void sort(List<T> list)
2)为GetTraders类创建一个新的比较器,并致电
public static <T> void sort(List<T> list, Comparator<? super T> c)
第一个解决方案是最简单的解决方案,但如果您需要根据多个条件对GetTraders对象进行排序,那么第二个解决方案是最佳选择。
正如指出的@Vaseph,如果你使用的是Java 8相反,生活突然变得更容易,因为所有你需要做的是:
traders.sort((GetTraders trade1, GetTraders trade2) -> {
return trade1.getBusinessName().compareTo(trade2.getBusinessName());
});
但是,如果您有可比和比较器接口的烦恼,我鼓励您在深入了解功能接口的魔法世界之前先尝试Java-8之前的解决方案。
为了完整起见,请还发现下面的每个解决方案的示例:
1)基于可比溶液:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class GetTraders1 implements Comparable<GetTraders1> {
private String getTraderLegalName;
private String businessName;
private Object status;
public GetTraders1(String getTraderLegalName, String businessName, String status) {
this.getTraderLegalName=getTraderLegalName;
this.businessName=businessName;
this.status=status;
}
@Override
public int compareTo(GetTraders1 that) {
return this.getTraderLegalName.compareTo(that.getTraderLegalName);
}
@Override
public String toString() {
return "GetTraders [getTraderLegalName=" + getTraderLegalName + ", businessName=" + businessName + ", status=" + status + "]";
}
public static void main(String[] args) {
GetTraders1 getTraders1 = new GetTraders1("1", "bn", "status");
GetTraders1 getTraders2 = new GetTraders1("2", "bn", "status");
GetTraders1 getTraders3 = new GetTraders1("3", "bn", "status");
List<GetTraders1> list = new ArrayList<>();
list.add(getTraders3);
list.add(getTraders2);
list.add(getTraders1);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
}
2)比较为基础的溶液
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class GetTraders2 {
private String getTraderLegalName;
private String businessName;
private Object status;
public GetTraders2(String getTraderLegalName, String businessName, String status) {
this.getTraderLegalName=getTraderLegalName;
this.businessName=businessName;
this.status=status;
}
@Override
public String toString() {
return "GetTraders [getTraderLegalName=" + getTraderLegalName + ", businessName=" + businessName + ", status=" + status + "]";
}
public static void main(String[] args) {
GetTraders2 getTraders1 = new GetTraders2("1", "bn", "status");
GetTraders2 getTraders2 = new GetTraders2("2", "bn", "status");
GetTraders2 getTraders3 = new GetTraders2("3", "bn", "status");
List<GetTraders2> list = new ArrayList<>();
list.add(getTraders3);
list.add(getTraders2);
list.add(getTraders1);
System.out.println(list);
Collections.sort(list, new Comparator<GetTraders2>() {
@Override
public int compare(GetTraders2 o1, GetTraders2 o2) {
return o1.getTraderLegalName.compareTo(o2.getTraderLegalName);
}
});
System.out.println(list);
}
}
您必须实现比较适合您的课堂GetTraders。 – waxtah
实现一个[比较器](http://www.tutorialspoint.com/java/java_using_comparator.htm) – Idos
请不要发布格式不正确的代码。代码格式化是出于某种原因 - 使其他人可以轻松阅读和理解您的代码。如果您在没有缩进的情况下发布代码,没有人会麻烦阅读它。我现在已经为你解决了你的代码,但是将来,请自己投入这项工作。 –