私は次のシナリオのためのより良い最適化されたソリューションを見つけようとしていました。
私は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) まくら