如何以这种特定的方式对Collection进行排序?

时间:2018-01-15 16:31:04

标签: java sorting

我在12月份在大学接受了OOP 1(我们使用Java )的期末考试,但我没有通过考试。问题是我必须以某种特定的方式对事物进行排序,而我无法弄清楚如何正确实现这一点。我将翻译一部分练习(我将在谷歌翻译的帮助下完成):

" ...约翰喜欢自然数字,他喜欢除奇数之外的偶数数字。在每个子集中,他都是最小的。"

HERE is the original exercise (in spanish)

好的,所以,我必须在一个名为Natural的类中执行此操作,并且我必须能够以自定义方式对其进行排序(如上所述)。这是我无法做到的。我知道(考试后老师告诉我)我必须实施Comparable<T>

(我知道这部分)之后,我必须实例化一个LinkedList&lt; Natural &gt;,从文件中读取数字,对它们进行排序并将它们(已经排序)放入另一个文件中。

很抱歉,如果这令人困惑,我的英语真的很糟糕。

这就是我class Natural中的内容:

public class Natural implements Comparable<Natural> {

    public Integer numNatural;

    public int compareTo(Natural otroNatural) {

        Integer numNatural2 = ((Natural) otroNatural).numNatural;

        if (this.numNatural > numNatural2) return 1;
        else if (this.numNatural < numNatural2) return -1;
        else return 0;
    }

如何让我的程序理解我需要先输入偶数,而在偶数内,最小的数字?之后,最小的奇数也应该排序。

提前致谢。顺便问一下,为什么还要投票呢?

1 个答案:

答案 0 :(得分:1)

您有几种情况,这将有助于单独考虑这些情况。

  1. 偶数与偶数
  2. 偶数与奇数
  3. 奇数与偶数
  4. 奇数与奇数
  5. 对于第二种和第三种情况,您可以返回1 / -1,因为您知道答案而没有进一步的逻辑。对于其他两种情况,您需要在答案中进行比较。