当前位置: 首页 > 面试题库 >

排序枚举值

颜畅
2023-03-14
问题内容

我想知道是否有任何方法可以为不同的类订购枚举。例如,如果我有一组固定的化学物质,它们以不同的方式与其他化学物质发生反应,有些反应强烈,有些反应微弱。我基本上希望能够根据组应该对之反应的化学物质(即取决于类别)来切换它们的排列顺序。我确实知道我应该使用Comparable,但是我不确定该怎么做。如果我不够清楚,请发表评论,我将作进一步解释。

谢谢。

public static enum Chem {
    H2SO4, 2KNO3, H20, NaCl, NO2
};

所以我看起来像这样,我已经知道每种化学物质如何与其他化学物质发生反应。我只是想根据将与之反应的化学物质来安排化学物质。那几乎就是我所拥有的。


问题答案:

实现不同Comparator的代码(请参见http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html)

Comparator comparator1 = new Comparator<MyEnum>() {

  public int compare(MyEnum e1, MyEnum e2) {
     //your magic happens here
     if (...)
       return -1;
     else if (...)
       return 1;

     return 0;
  }
};

//and others for different ways of comparing them

//Then use one of them:
MyEnum[] allChemicals = MyEnum.values();
Arrays.sort(allChemicals, comparator1); //this is how you sort them according to the sort critiera in comparator1.


 类似资料:
  • 例如,如果常数不显示为星期五、星期一、星期六、星期日、星期四、星期二、星期三,那么的javadoc看起来会更好。

  • 问题内容: 我们有一个枚举 此外,我们还有一个包含字符串的列表。有没有一种方法可以根据枚举定义的顺序(而不是自然顺序)对列表进行排序。 排序后的列表应为。 问题答案: 器具通过枚举(其中值声明的顺序)的自然顺序。如果仅通过解析创建枚举值(而不是字符串)的列表,则使用对该列表进行排序,它应该按照您想要的方式进行排序。如果您再次需要一个字符串列表,则可以通过调用每个元素来转换回来。

  • 我在使用SpringData/Hibernate按自定义规则对枚举进行排序时遇到了一些小问题。 A有一个名为DeviceState的枚举,它有自己的优先级字段。 枚举由DeviceEntity使用: 有线索吗,救命?点子?请记住,这是生产工作系统,我不能做任何“烟火”。

  • 问题内容: 假设是,我将如何产生给定序数的枚举值? 问题答案: 足够了。一条线; 足够简单。

  • 问题内容: 这不是卡住我的问题,而是我正在寻找一种编写代码的整洁方法。 本质上,我正在编写一个事件驱动的应用程序。用户触发一个事件,该事件被发送到适当的对象,然后这些对象处理事件。现在,我正在编写偶数处理程序方法,并且希望使用switch语句确定如何处理事件。现在,在我研究通用结构时,事件类非常简单: 然后,在另一堂课中,我会看到类似以下内容的内容: 我会 喜欢 做的就是这样的事情(尽管我当然会坚

  • 使用枚举我们可以定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。 数字枚举 首先我们看看数字枚举,如果你使用过其它编程语言应该会很熟悉。 enum Direction { Up = 1, Down, Left, Right } 如上,我们定义了一个数字枚举,Up使用初始化为1。 其余的成员