gpt4 book ai didi

java - 使用java按指定顺序排列arrayList的值

转载 作者:行者123 更新时间:2023-12-01 07:33:44 25 4
gpt4 key购买 nike

我试图为以下场景找到更好且优化的解决方案
我有一个数组列表

ArrayList<Order> orders = new ArrayList<Order>();  

排序后的结果值按顺序如下

    {  
medicine,
medicine,
milk,
milk,
pillow,
Soap,
toy
}

我有一个包含所有这些项目的枚举

public Enum Items{  
PILLOW("pillow"),
HARDDISK("harddisk"),
MILK("milk"),
SOAP("soap"),
MEDICINE("medicine"),
TOY("toy")
}

我的输出顺序应该如下

{    
milk,
milk,
harddisk,
medicine,
medicine,
toy,
soap,
pillow
}

为了实现这一目标,我所做的就是

ArrayList<Order> resultList = new ArrayList<Order>();  
for(Order order: orders){
if(order.getItemName.equals(Items.MILK){
resultList.add(order);
}

for(Order order: orders){
if(order.getItemName.equals(Items.MEDICINE){
resultList.add(order);
}

.......

for(Order order: orders){
if(order.getItemName.equals(Items.PILLOW){
resultList.add(order);
}

如果我遵循上述方法,我能够按照上述指定的顺序获得输出顺序,但我担心的是,因为我在这里循环了许多 for 循环,所以我需要有关优化方法的建议。

输出应按以下顺序排序

1) 牛奶2)硬盘3)医药4) 玩具5)肥皂6) 枕头

最佳答案

您可以使用 Collections#sort(list,comparator) 来代替,您可以在其中传递自定义比较器以按特定顺序获取结果。

Collections.sort(list, new Comparator<Order>() {

@Override
public int compare(Order obj1, Order obj2) {
// write the custom logic
// a negative integer, zero, or a positive integer as the first argument
// is less than, equal to, or greater than the second
return 0;
}
});

关于java - 使用java按指定顺序排列arrayList的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14913795/

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