标签: comparator

比较器为什么要实现Serializable?

Java新手.在使用Android应用程序时学习它.我正在实现一个比较器来对文件列表进行排序,并且android文档比较器应该实现Serializable:

建议Comparator实现Serializable.

这是Serializable接口在这里.

我只想对文件列表进行排序.我为什么要实现这个,或者为什么它应该适用于任何比较器呢?

java sorting serialization android comparator

39
推荐指数
3
解决办法
2万
查看次数

Java的Collections.sort(列表,比较器)的排序顺序是什么?从小到大还是从大到小?

显然,它没有记录,或者我错过了它.

是文档的链接,下面是文本作为图像:

编辑(17/5):我认为太多人把这个问题混淆为比较问题.它不是.比较器比较2个元素.根据那个比较,列表排序.怎么样?升序还是降序?

我将进一步细化/简化问题:如果比较器确定元素A小于元素B. 在排序列表中,元素A是否位于比元素B更低的索引处?

在此输入图像描述

java sorting collections comparator

39
推荐指数
3
解决办法
5万
查看次数

双重型比较器

我写了以下代码:

public class NewClass2 implements Comparator<Point>
{
    public int compare(Point p1, Point p2)
    {
        return (int)(p1.getY() - p2.getY());
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我说有两个双号,3.2 - 3.1差异应该是0.1.然而,当我将数字转换为int时,差异最终为0,这是不正确的.

因此我需要compare()返回一个double,而不是int.问题是,我的getX领域是双重的.我怎么解决这个问题?

java double casting comparator

38
推荐指数
6
解决办法
7万
查看次数

关于null的可比较和比较者合同

Comparable合同规定e.compareTo(null)必须抛出NullPointerException.

来自API:

请注意,这null不是任何类的实例,并且e.compareTo(null)应该抛出一个NullPointerException偶数e.equals(null)返回false.

另一方面,ComparatorAPI没有提及比较时需要发生的事情null.考虑以下尝试采用a的泛型方法Comparable,并Comparator为其null作为最小元素返回.

static <T extends Comparable<? super T>> Comparator<T> nullComparableComparator() {
   return new Comparator<T>() {
      @Override public int compare(T el1, T el2) {
         return
            el1 == null ? -1 :
            el2 == null ? +1 :
            el1.compareTo(el2);
      }
   };
}
Run Code Online (Sandbox Code Playgroud)

这允许我们执行以下操作:

List<Integer> numbers = new ArrayList<Integer>(
   Arrays.asList(3, 2, 1, null, …
Run Code Online (Sandbox Code Playgroud)

java generics null comparable comparator

35
推荐指数
2
解决办法
2万
查看次数

java比较器,如何按整数排序?

我试图在java中学习比较器,我在网上找到了这个很好的例子,我的问题是如何更改这些代码,以便按年龄和降序排列宠物名称,以便最老的是第一个,最小的是最后一个?

class Dog implements Comparator<Dog>, Comparable<Dog>{
private String name;
private int age;
Dog(){
}

Dog(String n, int a){
  name = n;
  age = a;
}

public String getDogName(){
  return name;
}

public int getDogAge(){
  return age;
}

// Overriding the compareTo method
public int compareTo(Dog d){
  return (this.name).compareTo(d.name);
}

// Overriding the compare method to sort the age 
public int compare(Dog d, Dog d1){
  return d.age - d1.age;
}
}

public class Example{
public static void main(String args[]){
  // Takes …
Run Code Online (Sandbox Code Playgroud)

java android sql-order-by comparator

35
推荐指数
4
解决办法
15万
查看次数

Java将String CompareTo作为比较器对象

我想通过String.CompareTo比较器对一个静态字符串数组进行排序和二进制搜索.

问题是排序和二进制搜索都要求传入Comparator对象 - 那么如何传入内置字符串比较器?

java string object comparator

34
推荐指数
8
解决办法
12万
查看次数

用于对数组进行排序的Java Comparator类

说,我们有以下二维数组:

int camels[][] = new int[n][2];
Run Code Online (Sandbox Code Playgroud)

应该如何Comparator声明Java 类,使用降序排列第一个元素的数组Arrays.sort(camels, comparator)?在compare供参考的功能是:

@Override public int compare(int[] a, int [] b)
{
    return b[0] - a[0];
}
Run Code Online (Sandbox Code Playgroud)

java arrays multidimensional-array comparator

32
推荐指数
3
解决办法
10万
查看次数

如何将自定义比较器传递给"排序"?

A具有以下比较器:

class A
  attr_accessor x

  def my_comparator(a)
    x**2 <=> (a.x)**2
  end
end
Run Code Online (Sandbox Code Playgroud)

我想使用这个比较器对每个项目属于A类的数组进行排序:

class B
  def my_method
    items.sort!(<how can I pass my_comparator here ?>)
  end
end
Run Code Online (Sandbox Code Playgroud)

我应该怎样my_comparator转到sort!

ruby sorting comparator

26
推荐指数
3
解决办法
2万
查看次数

为什么比较器声明等于?

Comparator接口有自己的equals()方法.equals()默认情况下,任何类都将通过Object类获取.equals()在接口中有什么方法需要?

java lambda comparator java-8 functional-interface

26
推荐指数
2
解决办法
4080
查看次数

Java泛型:Collections.max()签名和Comparator

我理解集合的get和put原则:如果一个方法接受一个集合,它将写入一个类型T,参数必须是Collection<? super T>,而如果它将读取一个类型T,参数必须是Collection<? extends T>.

但有人可以解释Collections.max()签名:

public static <T> T max(Collection<? extends T> coll,
                    Comparator<? super T> comp)
Run Code Online (Sandbox Code Playgroud)

特别是为什么它Comparator<? super T>而不是Comparator<? extends T>

java generics comparator

25
推荐指数
1
解决办法
4129
查看次数