I was trying to find a better and optimized solution for the following scenario
I have an arrayList
ArrayList<Order> orders = new ArrayList<Order>();
and the sorted result values in orders are as follows
{
medicine,
medicine,
milk,
milk,
pillow,
Soap,
toy
}
and I have an ENUM for all these items which is
public Enum Items{
PILLOW("pillow"),
HARDDISK("harddisk"),
MILK("milk"),
SOAP("soap"),
MEDICINE("medicine"),
TOY("toy")
}
My output order should be as follows
{
milk,
milk,
harddisk,
medicine,
medicine,
toy,
soap,
pillow
}
In order to accomplish this all i was trying to do is
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);
}
If i follow the above approach, i am able to get the output order in the above specified order, but my concern is since i am looping many for loops here, I want suggestions for optimized approach.
output should be sorted in the based on the following order
1) milk 2) harddisk 3) medicine 4) toy 5) soap 6) pillow