按类别排序时如何避免并发修改异常?

时间:2018-10-19 00:06:40

标签: java arrays sorting arraylist

我正在尝试按类别对项目进行排序。我的想法是使用项目列表中第一个项目的类别,向下迭代列表,并将同一类别中的所有项目移至新列表,在完成所有项目之后添加类别名称。然后在原始列表(已删除项目)上再次开始循环,重复直到原始列表中没有任何内容(即所有内容均按类别移入了sortedList)。

我的代码是这样设置的:

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...

是否有其他/更好的方法?我当前的工作方法似乎很糟糕。它基本上是找出列表中的每个类别,按每个类别比较列表中的每个项目,遍历类别,然后添加到已排序的列表中。必须有一种更高效的方法来执行此操作,如果我能使其正常工作,上述解决方案应该会有所帮助。任何帮助将不胜感激。

0 个答案:

没有答案