java中的ArrayList排序

java中的ArrayList排序,java,sorting,arraylist,Java,Sorting,Arraylist,我是多个ArrayList,其中包含实现Comparatorinterface的自定义对象。这些多个列表可能具有相同的对象。我的要求是每个列表可以有自己的顺序 例如: 列表1可以包含4个对象Obj2、Obj4、Obj1、Obj3 列表2可以包含5个对象Obj4、Obj3、Obj5、Obj1、Obj2 如果我在列表1中为每个自定义对象分配一个id(0,1,2,3,4),并使用ArrayList上的排序方法,我认为如果我有一个列表,它将对我有效 但我不能这样做,因为对于List2,相同的对象需要以不

我是多个ArrayList,其中包含实现Comparatorinterface的自定义对象。这些多个列表可能具有相同的对象。我的要求是每个列表可以有自己的顺序

例如:

列表1可以包含4个对象Obj2、Obj4、Obj1、Obj3 列表2可以包含5个对象Obj4、Obj3、Obj5、Obj1、Obj2

如果我在列表1中为每个自定义对象分配一个id(0,1,2,3,4),并使用ArrayList上的排序方法,我认为如果我有一个列表,它将对我有效

但我不能这样做,因为对于List2,相同的对象需要以不同的顺序排列。有没有一种方法可以让我使用comparator并依赖Collections框架排序,而不必为每个ArrayList维护单独的顺序列表

任何帮助都将不胜感激


谢谢

编写一个自定义比较器,然后使用Collections.sort(列表,比较器)。您可以有两个(或需要多少个)比较器,以便根据不同的参数对对象进行排序。

或者使用自定义编写的比较器impl:

Collections.sort(list, new Comparator<Comparable<?>>() {
        @Override
        public int compare(final Comparable o1, final Comparable o2) {
            // Compare two objects, might not be the same type
        }
    });

Collections.sort(list,new Comparator为了以不同的顺序保存列表,您需要此列表的副本。如果您只保留对一个列表的多个引用,则对一个引用进行排序也会影响其他引用


不要担心一个列表有多个副本。列表本身也有内容作为引用。因此,如果您从另一个列表创建一个新列表,您将创建列表的副本,但不会创建列表中元素的副本。它们作为引用保留在列表中,不会受到任何影响。

您有一个Comparator数组rs?你不是指一系列可比数据吗?对不起,是的,一系列可比数据