Я пытаюсь отсортировать товары по категориям.Я думал о том, чтобы использовать категорию первого элемента в списке элементов, выполнить итерацию вниз по списку и переместить все элементы той же категории в новый список, добавив имя категории после завершения всех элементов.Затем снова запустите цикл в исходном списке (с удаленными элементами), повторяйте, пока в исходном списке ничего не будет (т.е. все было перемещено в отсортированный список по категориям).
Мой код был настроенкак это:
List<Food> foodList; //some arraylist of foods, we want to sort by category (fruit, veg, meat).
List<Food> sortedList; //arraylist sorted by category.
while ( !foodList.isEmpty ) {
String category = foodList.get(0).getCategory;
for ( Food f : foodList ) {
if ( f.category.equals(category) ) {
sortedList.add(f);
foodList.remove(f);
}
}
sortedList.add(category) //like a category heading.
}
//flip sortedList to have categories on top...
Есть ли другой / лучший способ сделать это?Мой нынешний метод работы кажется действительно дерьмовым.Это в основном вычисление каждой категории в списке, сравнение каждого элемента в списке по каждой категории, итерация по категориям и просто добавление в отсортированный список.Должен быть более эффективный способ сделать это, что должно помочь моему вышеупомянутому решению, если я смогу заставить его работать.Любая помощь будет оценена.