I'm trying to sort a stream by an specific order by one of its fields.
Now I'm achieving this by converting streams to list and using a switch and then rejoining them into a list in the desired order.
fruits.forEach(fruit -> {
switch (fruit.getName()) {
case "Orange":
orangesList.add(fruit);
break;
case "Apple":
applesList.add(fruit);
break;
case "WaterMelon":
watermelonList.add(fruit);
break;
default:
otherFruits.add(fruit);
break;
}
});
genericFruitList.addAll(0, orangeList);
genericFruitList.addAll(1, applesList);
genericFruitList.addAll(2, watermelonList);
genericFruitList.addAll(3, otherFruits);
I wonder if there's any change to achieve this using stream sorted method and using a custom comparator or something like that.
Thanks in advance.