【发布时间】:2018-07-29 17:27:46
【问题描述】:
public class User {
private String name;
private private Set<MyEnum> enums;
//getter and setter methods..
}
public enum MyEnum {
A(1, "..."),
B(2, "...");
private int value;
private String description;
private MyEnum(int value, String description){
....
}
}
如何比较两个用户实例,首先是枚举属性,然后是名称? 当我们有一个枚举集而不是单个值时有可能吗?
【问题讨论】:
-
是的,您可以拥有一组枚举。你已经在使用它了。您打算如何比较一组枚举?
-
您只想比较是否相等?还是您希望能够对它们进行排序?
-
@Bentaye 我有一个用户列表,我需要先按枚举集属性(按大小增加顺序)然后按名称对其进行排序。我不知道你是否明白我的意思..
-
@Dave 所以按集合中元素的数量排序就是您要找的东西?
-
@Bentaye,是的。我尝试了类似
Integer o1Size = o1.getEnums().size(); Integer o2Size = o2.getEnums().size(); int compare = o1Size.compareTo(o2Size); if(compare==0){return o1.getName().compareTo(o2.getName());} return compare;但不起作用
标签: java enums compare comparator