本文介绍了比较器:等于方法功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
实际上,我正在阅读其中一个教程,其中提到当我们需要实现比较器接口时,可以重写equals方法(但是不必重写)。
为了更好地理解
我重写该方法,如下所示
Test.java
import java.util.TreeSet;
public class Test
{
public static void main(String[] args)
{
TreeSet t = new TreeSet(new MyComparator());
t.add(1);
t.add(1);
t.add(2);
System.out.println(t);
}
}
MyCompator.java
导入java.util.Compator;
public class MyComparator
implements Comparator
{
@Override
public int compare(Object o1, Object o2)
{
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i1.compareTo(i2);
}
@Override
public boolean equals(Object o1)
{
return false;
}
}
其他方案
import java.util.Comparator;
public class MyComparator
implements Comparator
{
@Override
public int compare(Object o1, Object o2)
{
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i1.compareTo(i2);
}
@Override
public boolean equals(Object o1)
{
return true;
}
}
现在,无论我从equals方法返回什么,TRUE或FALSE。它返回相同的树集值。如果有谁能澄清equals方法的函数性概念,请推荐答案
在Comparator
上实现equals()
方法允许您指示一个比较器提供与另一个比较器相同的顺序。它与元素的排序方式无关。这是一项非常高级且极少需要的功能。您不太可能遇到实际调用比较器的equals()
方法的情况。我建议你忽略它。
这篇关于比较器:等于方法功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!