我试图为以下场景找到更好和优化的解决方案
我有一个 arrayList
ArrayList<Order> orders = new ArrayList<Order>();
排序后的结果值如下
{
medicine,
medicine,
milk,
milk,
pillow,
Soap,
toy
}
我对所有这些项目都有一个 ENUM
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) 枕头