gpt4 book ai didi

java - 带有基于 Java 中属性数据的对象的订单列表

转载 作者:行者123 更新时间:2023-11-29 03:06:21 26 4
gpt4 key购买 nike

我需要根据 Foo 作为属性的枚举值,用“Foo”对象对我的列表进行排序。我找到了“比较器”,我以前用过它们。但是我总是有一些 integer/double 属性,这对我来说更清楚。

因为这个问题可能含糊不清,我将制作一些代码,以便你们明白我的意思/想要的。非常感谢!

/* Enum class */
public enum SomeEnum {
CONSTANT_ALPHA, CONSTANT_BETA, CONSTANT_DELTA;
}

/* Class 'Foo', this is my Foo object */
public class Foo {
private SomeEnum enum; /* Every 'Foo' has a enum type */

public Foo(SomeEnum enum){
this.enum = enum;
}

public SomeEnum getEnum(){
return enun;
}
}

/* Imagine this below is some controller class*/

Foo alpha1 = new Foo(SomeEnum.CONSTANT_ALPHA);
Foo beta1 = new Foo(SomeEnum.CONSTANT_BETA);
Foo alpha2 = new Foo(SomeEnum.CONSTANT_ALPHA);
Foo delta1 = new Foo(SomeEnum.CONSTANT_DELTA);
Foo beta2 = new Foo(SomeEnum.CONSTANT_BETA);

List<Foo> list = new ArrayList<>();
list.add(alpha1);
//list.add(beta1) etc etc (all those 5 Foos)

Collections.sort(list, someComparatorIDontKnowHowToMake);

System.out.println(list.toString()); /* Not sure how to correctly print a List<> object, but imagine I would print the contents of the list*/

/* The result of the list should be: */
/* alpha1, alpha2, beta1, beta2, delta1*/

总而言之或 TL;DR:

我需要根据相同的枚举类型对列表中的对象进行排序。我不需要特别在“delta”之前有“alpha”。我只希望具有相同枚举值的 Foo 对象在列表中彼此相邻。

如果这没有意义,请务必提问!

谢谢。

最佳答案

您可以简单地比较 Fooenum 元素

foos.sort(new Comparator<Foo>() {

@Override
public int compare(Foo o1, Foo o2) {
//Add null check
return o1.getEnum().compareTo(o2.getEnum());
}
});

关于java - 带有基于 Java 中属性数据的对象的订单列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com