java - 对对象 Java 的 ArrayList 进行排序

标签 java sorting arraylist

我有一个 ArrayList 对象,我想按它们的值排序。基本上我有 9 个不同的数学函数(即 f1(n) = log nf2(n) = nf3(n) = n log n 等)。我将 1 的值插入到所有 9 个函数中,并将它们的结果放在对象的 ArrayList 中,并附加了它们的标签,如下面的代码所示。我想对整个结果列表进行排序。

ArrayList<Object>val1 = new ArrayList<Object>();
        val1.add("f\u2081(1) = " + log(funcValues[0]));
        val1.add("f\u2082(1) = " + funcValues[0]);
        val1.add("f\u2083(1) = " + exponent(funcValues[0]));
        val1.add("f\u2084(1) = " + f4(funcValues[0]));
        val1.add("f\u2085(1) = " + squared(funcValues[0]));
        val1.add("f\u2086(1) = " + cubed(funcValues[0]));
        val1.add("f\u2087(1) = " + twoN(funcValues[0]));
        val1.add("f\u2088(1) = " + factorial(funcValues[0]));
        val1.add("f\u2089(1) = " + f9(funcValues[0]));

基本上,无论您在哪里看到 log、funcValues、exponent、f4、squared 等,这些都是计算数学函数答案的函数。这个 ArrayList 的输出是:

f₁(1) = 0.0
f₂(1) = 1
f₃(1) = 1.0
f₄(1) = 0.0
f₅(1) = 1
f₆(1) = 1.0
f₇(1) = 2.0
f₈(1) = 1
f₉(1) = 0.0

我只想对数字进行排序。我试图这样做:

class ValuesSorted implements Comparator<Object> {

        @Override
        public int compare(Object v1, Object v2) {
            if ()
            return 0;
        }
    }

我被困在 if 语句上,因为我无法执行 if (v1.getValue > v2.getValue) 之类的操作,因为我正在使用 9 个不同的函数调用来提取每个值。

最佳答案

Simply try 
Collections.sort(testList);
Collections.reverse(testList);

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html

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

相关文章:

java - 按内部对象(字符串、日期等)逆序对 ArrayList<Object[]> 进行排序

java - 如何在 Spring Boot 中的其余 Controller 方法端点上应用 json 忽略注释?

java - 对调用默认值、无参数构造函数感到困惑

Java webapps 安全约束和自定义安全提供程序

android - 使用具有不同标准的比较器对 ArrayList<HashMap> 进行排序

java - 处理来自串行端口数组列表的数据

java - 如何在 Java 中使用 Gson @SerializedName 序列化嵌套对象?

sorting - 具有搜索、分页和排序功能的 Spring Boot Data JPA 表

c++ - 使用位运算的基数排序

Java 集合出现不兼容类型错误