有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

排序Java维护对象集合的顺序

您将如何维护收集业务对象的顺序

<BO1, BO2, BO3, BO4>

所以当你移除BO2,amd BO4时,你会得到

<BO1, BO3>

然后当你加上BO2

<BO1, BO2, BO3>

共 (6) 个答案

  1. # 2 楼答案

    除非使用排序顺序,否则我不知道集合应该如何知道BO2应该进入中间。

    如果您的业务对象实现了可比较的

    SortedSet<BusObj> bos = new TreeSet<>();
    bos.addAll(Arrays.asList(bo1, bo2, bo3, bo4));
    bos.removeAll(Arrays.asList(bo2, bo4));
    bos.add(bo2);
    
  2. # 4 楼答案

    问我的问题:

    我想如果人们对随机访问不感兴趣,PriorityQueue也是一个解决方案

  3. # 5 楼答案

    有几种方法可以做到这一点,但这取决于要使用的集合类型。显然,您不希望维护插入的顺序,而是希望维护基于列表中元素类型的顺序

    因此,在说使用这个或那个之前,先问自己以下问题:

    我的收藏能否保存重复的元素

    1)如果是:则可以使用List对象(ArrayListLinkedList等)的实现。但每次插入后,您需要对列表进行排序:

    List<MyObj> list = ...
    list.add(myObjInstance);
    Collections.sort(list);
    

    为了避免在每次插入时对列表进行排序,可以使用Apache Commons集合中的^{}实现

    2)如果上一个问题的答案是“否”。那么使用^{},就不需要使用该实现在每次插入时对集合进行排序

    请注意,您的对象元素必须实现^{}接口才能进行排序

  4. # 6 楼答案

    使您的业务对象^{}并使用排序的集合(如^{},它是^{}