有 Java 编程相关的问题?

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

动态Java:动态排序arraylist

我有几个项目的列表。一个项目可能有一个特定的int字段,等于OFF、FLOOR、RB1、RB2、RB3或RB4

例如,OFF的定义如下:

public static final int OFF = 0;

关于一些特定的全局变量,我希望以自定义方式对这些元素进行排序,例如:

  • arraylist开始处的所有RB1项、任何RB3项之后的所有RB2项(不管关闭项)以及arraylist结尾处的所有RB4项

对我来说,哪一个是最好的解决方案

专注于写一些习惯:

public int compare(Object o1, Object o2) {
    if(globalVariable0 > 0) {
        if(o1.getLying() == o2.getLying)
            return 0;
        if(o1.getLying() == RB1 && o2.getLying != RB1)
            return -1;
        ...
    }else{
        ...
    }

还是


共 (1) 个答案

  1. # 1 楼答案

    从你的问题中,我了解到你通过撒谎来对元素进行分组

    然后我会保留几个列表,每个列表对应一个谎言。。。你也可以列举不同的碱液

    您可以将元素存储在Multimap中,或者使用,例如:

    static enum Lying {
        OFF, FLOOR, RB1, RB2, RB3, RB4
    }
    
    EnumMap<Lying , List<MyElements>> myElements = ...