compareto

    -3热度

    1回答

    我试图排序的集合,收到以下异常: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) at java.util.Comparab

    3热度

    2回答

    我已经阅读了许多关于TreeSets,Comparable/Comparator Interfaces,equals,compareTo,比较方法的文章,我知道API说你必须让你的顺序“与equals “或者奇怪的事情可能会发生。 但在我的情况,我认为这是一个相当普遍的情况下,我确实需要一个TreeSet排序“与equals不一致”。 假设我们正在做某种启发式搜索,并且我们正在扩展(或生成)从根(

    8热度

    2回答

    试图使用Java的DelayQueue,我必须实现Delayed接口,它需要一个compareTo()"method that provides an ordering consistent with its getDelay method."。目的当然是DelayQueue可以很容易地对排队的对象进行排序,以便延迟的下一个可以返回给任何接受者。 现在我还需要提前从队列中删除对象。我需要致电del

    0热度

    2回答

    我创建了一个对象Student,使用Comparable与getter/setters以及一个覆盖compareTo的方法。在单独的文件中,对象的数组列表由文本文件填充。现在我需要将arraylist中的值与另一个Student对象进行比较。 文件被用来创建一个ArrayList如下: try { private static ArrayList<Student> array = new

    1热度

    2回答

    我最近观察到一个奇怪现象,那就是用两个Java Date对象与equals()进行比较。请注意,this.getDate()和other.getDate()都会在我的应用程序中返回一个Java Date对象。 代码: logger.debug("Date 1: " + this.getDate().toString()); logger.debug("Date 1: " + this.getDa

    -1热度

    3回答

    我是新来的Java和正在解决一些问题。我被困在一个问题上,让我“编写一个程序来输入十个单词,然后按字母顺序显示第一个和最后一个单词”。这个问题不明确。这可能意味着将所有输入单词按字母顺序排列,并显示其中的第一个和最后一个(较难)或按字母顺序显示第一个和最后一个输入单词(更简单)。我写了下面的代码: import java.util.Scanner; public class Alphabeti

    0热度

    4回答

    我知道这些方法的返回值的规则是obj1.compareTo(obj2)的规则,例如,如果obj2在层次结构中的obj1下,则返回值为负,如果它在obj1的顶部,那么它的正面(如果它相等,那么它是0)。然而,在我的课堂上,我看到了使用Math.signum的例子,以便在compareTo方法中获得-1(用于负数)和1(用于正数)。 有什么理由呢? 编辑: 这里是我的意思代码: Comparator

    0热度

    2回答

    我想比较3个不同的单词,然后对它们进行排序,但是我没有得到正确的答案。有些方向会很有帮助! 对Java非常新颖,并且一直困扰这个问题太久。 到目前为止我用这: `// word1, word2, and word3 /* If word1 is greater than word2, * and word2 IS greater than word3 and word3 is

    0热度

    1回答

    我想了解compareTo方法。我写了这个类AboutcompareTo,但我卡在为什么/我如何得到这个错误? - 代码几乎完成。 任何人都可以详细解释我做错了什么。由于 代码: public class AboutCompareTo { public static void main(String[] args) { Fruit[] fruits = { new Frui

    -1热度

    4回答

    我遇到了一个关于递归的麻省理工学院讲座,他们使用递归检查了回文,并且他们用逻辑来检查它,他们比较了第一个和最后一个字母等。 我认为是什么如下 只是一个伪代码: String original="abba"; String reverse = ""; for(int i=original.length()-1;i>=0;i--) { reverse+=ne