java - 对 ArrayList 进行选择排序

标签 java sorting arraylist selection-sort

我需要根据“值”对数组列表从最高到最低进行排序,我真的被困住了:(基本上在这个项目中,他们将运行一个项目列表,这个方法应该将项目与最高值优先,所以堡垒和我尝试使用选择排序。提前感谢您的帮助:)这是我目前所拥有的

public void pickMostExpensiveFirst(ArrayList<Item> totalListOfItems)
{
    int max, i ,j;
    Item temp;

    for (i = 0; i < totalListOfItems.size() - 1; i++)
    {
        max = i;

        for (j = i + 1; j < totalListOfItems.size(); j++)
        {
            if (totalListOfItems.get(max).getValue()
                    .compareTo(totalListOfItems.get(j).getValue()) > 0)
                max = j;
        }

        temp = totalListOfItems.get(i);
        totalListOfItems.set(i, totalListOfItems.get(max));
        totalListOfItems.set(max, temp);
    }
}

最佳答案

你的问题出在这里:

if (totalListOfItems.get(max).getValue().compareTo(totalListOfItems.get(j).getValue()) > 0)
  max = j;

在这里,您比较位置 max 和 j 处的 item,如果 item(max) > item(j),则将 max 替换为 j。这基本上是在寻找最低值,而不是最高值。切换过来,你的问题就解决了。

关于java - 对 ArrayList 进行选择排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19617552/

相关文章:

javascript - 如何在javascript中对嵌套对象数组进行排序

java - 在java中同步ArrayList的正确方法

javascript - 在 Javascript 中按日期对数组数组进行排序

java - 我有更新电影的更新方法。但是当我在 postman 中提供数据时,我输入一个字段,然后其余字段获取空值

java - JAVA中二维数组的排序问题

Java int 值类型转Character

java - 如何计算 ArrayList 中多个重复元素的数量?

android - 如何将arraylist中的所有值放入android中的hashmap?

java - 以字节数组形式从 JPEG 获取元数据

java正则表达式去除重复单词