Java 在arraylist中对不同类型的对象进行排序?

Java 在arraylist中对不同类型的对象进行排序?,java,Java,我有一个ArrayList有String,int,long,date类型对象等。 我想对这些对象进行排序 有人能帮我吗?你可以用 list.sort(); 不管是哪种类型 如果您有一个自定义类,并且需要一个特定的排序顺序,那么您可以这样做 class MyClass implements Comparator<MyClass> { public int compareTo(MyClass other) { // write your comparison h

我有一个
ArrayList
String
int
long
date
类型对象等。 我想对这些对象进行排序


有人能帮我吗?

你可以用

list.sort();
不管是哪种类型

如果您有一个自定义类,并且需要一个特定的排序顺序,那么您可以这样做

class MyClass implements Comparator<MyClass> {
    public int compareTo(MyClass other) {
        // write your comparison here
    }
}

您可以使用
java.util.collections.sort()方法对
List
集合进行排序

您可以对这两种类型的列表进行排序

ArrayList
LinkedList

如果您有一个包含不同类型对象的
数组列表,例如
字符串
整数
,等等。 您可以使用特定的比较器对该
ArrayList
进行排序,该比较器将首先使用它们的类名,然后对每个对象族使用比较方法。所有类都必须实现
Compariable
接口-这是String、Integer、Long、Date、Float、Double的情况

public List<Object> sortMultiClassList(List<Object> yourList) {
    return Collections.sort(yourList, new Comparator<Object>() {
        public int compare(Object o1, Object o2) {
            if (o1.getClass() == o2.getClass()) {
                if (o1 instanceof Comparable) {
                    return((Comparable)o1).compareTo((Comparable)o2);
                }
                else {
                    throw new IllegalArgumentException("Don't know how to compare");
                }
            }
            else {
                return o1.getClass().getName()
                     .compareTo(o2.getClass().getName());
            }
        } 
    });    
}
公共列表排序多类列表(列出您的列表){
return Collections.sort(yourList,newcomparator(){
公共整数比较(对象o1、对象o2){
如果(o1.getClass()==o2.getClass()){
if(o1实例可比){
回报率((可比)o1)。与((可比)o2)相比;
}
否则{
抛出新的IllegalArgumentException(“不知道如何比较”);
}
}
否则{
返回o1.getClass().getName()
.compareTo(o2.getClass().getName());
}
} 
});    
}

注意:
java.util.Collection
不能包含诸如
int
long
float
double
char
之类的基元类型

如果你告诉我们你希望它们如何排序。首先,数字,日期,然后字符串对象……清楚地表达你的想法。我们无法推测你想做什么。
public List<Object> sortMultiClassList(List<Object> yourList) {
    return Collections.sort(yourList, new Comparator<Object>() {
        public int compare(Object o1, Object o2) {
            if (o1.getClass() == o2.getClass()) {
                if (o1 instanceof Comparable) {
                    return((Comparable)o1).compareTo((Comparable)o2);
                }
                else {
                    throw new IllegalArgumentException("Don't know how to compare");
                }
            }
            else {
                return o1.getClass().getName()
                     .compareTo(o2.getClass().getName());
            }
        } 
    });    
}