java - 用于按浮点参数对对象数组列表进行排序的比较器

标签 java arraylist comparator comparable

我如何创建一个比较器,以便能够通过浮点参数对数组列表进行排序?

假设我有一个对象数组列表,其中包含如下内容:

ID=7 TFIDF=0.12654299 PR=25238.0
ID=4 TFIDF=0.12654299 PR=3638.0
ID=4 TFIDF=0.12654299 PR=3638.0
ID=4 TFIDF=0.12654299 PR=3638.0
ID=3 TFIDF=0.56442446 PR=14558.0
ID=1 TFIDF=0.0083091585 PR=3953.0 

我想按 TFIDF 值对数组进行排序。据我所知,我只能按整数对它们进行排序。因此,我比较零。

到目前为止我有这个:

Collections.sort(Contents_To_Show, new Comparator<ContentToShow>() {
            public int compare(ContentToShow o1, ContentToShow o2) {
                return (int) (o1.GetPR() - o2.GetPR());
            }
        });

但是。同样,它只比较整数部分。我如何比较整个值?

请帮忙。

谢谢

最佳答案

跟进佩德罗的跟进。如果要按 TFIDF 排序,则按 PR,

int result = Float.compare(o1.getTFIDF(), o2.getTFIDF());
if (result == 0)
  result = Float.compare(o1.getPR(), o2.getPR());
return result;

关于java - 用于按浮点参数对对象数组列表进行排序的比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563182/

相关文章:

java - ArrayList 对象 (java)

java - 读取 Double 值

java - 用于对 map 进行排序的比较器

java - 如何按包含的枚举对对象列表进行排序?

java - JBoss 7.1 独立版/tmp/vfs 稳步增长

java - Math.abs()报错: cannot find symbol

java - 根据某些条件更改 where 子句标准

java - Spring Boot - 依赖项的初始化顺序

java - 您将如何交叉引用两个 ArrayList 的字符串变量以返回这些字符串的对象?

java - 为什么 Arrays.sort(T[] a, Comparator<? super T> c) 将 T 推断为二维数组的对象?