Java 将对象w.r.t列表排序到特定成员/国家
我有一个java对象列表,它有4个成员Java 将对象w.r.t列表排序到特定成员/国家,java,string,list,sorting,Java,String,List,Sorting,我有一个java对象列表,它有4个成员 int id; String name; String age; int order; 我想用w.r.t name对这个对象的列表进行排序或者实现一个比较器,如下所示: public static void main(String[] args) throws IOException { List<MyObject> list = new ArrayList<MyObject>(); // add your o
int id;
String name;
String age;
int order;
我想用w.r.t name对这个对象的列表进行排序或者实现一个比较器,如下所示:
public static void main(String[] args) throws IOException {
List<MyObject> list = new ArrayList<MyObject>();
// add your objects to the list
Collections.sort(list, new Comparator<MyObject>() {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.name.compareTo(o2.name);
}
});
}
要么实现一个比较器,如下所示:
public static void main(String[] args) throws IOException {
List<MyObject> list = new ArrayList<MyObject>();
// add your objects to the list
Collections.sort(list, new Comparator<MyObject>() {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.name.compareTo(o2.name);
}
});
}
您可以创建一个比较器,通过名称比较该类型中的两个对象,并使用此比较器进行排序:
private static class MyComparator implements Comparator<MyType>
{
@Override
public int compare(MyType o1, MyType o2)
{
return o1.getName().compareTo(o2.getName());
}
}
您可以创建一个比较器,通过名称比较该类型中的两个对象,并使用此比较器进行排序:
private static class MyComparator implements Comparator<MyType>
{
@Override
public int compare(MyType o1, MyType o2)
{
return o1.getName().compareTo(o2.getName());
}
}
查看。查看。代表myString的值对所有成员/状态进行排序,即如果myString是name,则按name排序,反之亦然
Collections.sort(list, new Comparator<com.MyObject>() {
public int compare(com.MyObject object1, com.MyObject object2) {
if(myString.equalsIgnoreCase("name")){
return object1.getName().compareTo(object2.getName());
}else if(myString.equalsIgnoreCase("age")){
return object1.getAge().compareTo(object2.getAge());
}else{
return object1.getOrder() - object2.getOrder();
}
}
});
代表myString的值对所有成员/状态进行排序,即如果myString是name,则按name排序,反之亦然
Collections.sort(list, new Comparator<com.MyObject>() {
public int compare(com.MyObject object1, com.MyObject object2) {
if(myString.equalsIgnoreCase("name")){
return object1.getName().compareTo(object2.getName());
}else if(myString.equalsIgnoreCase("age")){
return object1.getAge().compareTo(object2.getAge());
}else{
return object1.getOrder() - object2.getOrder();
}
}
});
o、 名称:名称不是静态的,请使用getter方法instead@Eng.Fouad:很好的一点,您可以将Comparator作为成员类。我正在使用这些Collections.sortlist,新的Comparator{in if-else,例如ifmyString.equalsname{//按名称排序}else{//按年龄排序}。但它会引发异常。它会引发哪个异常?如果它是NullPointerException,则需要1没有任何空值,或者2在比较器中创建空保护。但是,我建议您为不同的任务使用两个比较器,一个用于名称排序,另一个用于年龄排序。我正在为这两个任务使用单独的比较器。通过ws-java.lang.ClassNotFoundException://类是我使用此代码的类。名称:名称不是静态的,请使用getter方法instead@Eng.Fouad:很好的一点,您可以将Comparator作为成员类。我正在使用这些Collections.sortlist,新的Comparator{in if-else,例如ifmyString.equalsname{//按名称排序}else{//按年龄排序}。但它会引发异常。它会引发哪个异常?如果它是NullPointerException,则需要1没有任何空值,或者2在比较器中创建空保护。但是,我建议您为不同的任务使用两个比较器,一个用于名称排序,另一个用于年龄排序。我正在为这两个任务使用单独的比较器。通过ws-java.lang.ClassNotFoundException://我在其中使用此代码我在使用这些集合。sortlist,新的比较器{在if-else中,例如ifmyString.equalsname{//sort by name}else{//sort by age}。但它引发异常。我之所以收到异常,是因为我多次使用“Collections.sortlist,new Comparator”。我发布了工作代码的答案。我正在使用这些Collections.sortlist,new Comparator{in if else,例如ifmyString.equalsname{//sort by name}else{//sort by age}。但它引发异常。我之所以收到异常,是因为我多次使用“Collections.sortlist,new Comparator”。我发布了工作代码的答案。age不应该是数字int或float吗?age不应该是数字int或float吗?