当前位置: 首页 > 知识库问答 >
问题:

仅仅通过实现可比较的接口,我们如何对对象的元素进行排序?

湛安宁
2023-03-14

下面是示例代码:

public class test {

    public static void main(String[] args) {
        ArrayList<Point> list = new ArrayList<Point>();
        list.add(new Point(1));
        list.add(new Point(4));
        list.add(new Point(2));
        list.add(new Point(3));
        list.add(new Point(2));
        Collections.sort(list);
    }

}

所以我不知道为什么我不能使用这些收藏。排序,直到我将Comparable接口的compareTo方法添加到类点。

我也不知道该方法如何比较通过返回-1、0和1对元素进行排序。

如果有人有任何想法,请向我解释。

共有1个答案

涂泰平
2023-03-14

所以我不知道为什么我不能使用这些收藏。排序,直到我将Comparable接口的compareTo方法添加到类点。

因为java不知道为什么new Point(1)应该在new Point(2)之上或之下排序。

我也不知道该方法如何比较通过返回-1、0和1对元素进行排序。

假设我给你一个包,里面有一张纸。每篇论文都列出了一个名字和一个电话号码,我想让你写一个电话簿,但你不知道是哪个订单。

你所能做的就是要求任何两个音符,其中一个比另一个高。

然后你就可以做这项工作了:假设到目前为止你已经整理了12张纸币。

然后从袋子里拿出第13张纸币,问我它是高于还是低于你那堆纸币中的第6张。我说“更高”。所以你问我关于9号的事,我说得更高。你问11号的事,我说低一点。如果你问我10号的事,我会说更高。

你只需要知道这些

看见一位刚刚回答了这个问题的预言家:给出这两个音符,告诉我:这一个比那一个低,高,还是相同这就是你所需要的。

您也已经过时了,这段代码和编写自己的compareTo的概念已经相当陈旧了。现在简单多了:

list.sort(Comparator.comparingInt(Point::getValue));

这就是你所需要的。将通过在每个生成int值的点上运行p.getValue()进行排序,然后通过将较低的int视为该点“位于”具有较高值的点之前来对点进行排序。

然后,您可以使用二级排序顺序(如果两个点的值相同,则改为按其ID排序)、定义行上的值应适合的位置、颠倒顺序等。

无需处理-1、0和1。

 类似资料:
  • 我正试图根据员工的加入日期对他们的列表进行排序。下面是我的员工类。 下面是我的比较器类:

  • 假设我有一个叫“序列”的类。这个类有一个实例变量。还有一些方法可以创建这个选项卡,比如: 现在,我想创建一个方法,它接受两个Sequence对象作为参数,并返回相同tab元素的数量。所以,我创建了这样的方法:

  • 我有一个类赋值,我需要将一个目标排序到一个二叉树节点中,给定一个根,我需要将它与根进行比较,如果目标小于根的值,则将目标作为左子,或者如果目标大于根的值,则将目标作为右子。 我必须使用给定的方法头和参数,我的代码是这样编写的: 返回以下错误: java:109:错误:二进制运算符“<”的操作数类型不正确 我还尝试了compareTo方法,通过尝试类似于 返回以下错误: binarySearchTr

  • 问题内容: 在我的程序中,创建了一个固定长度[7]个对象的数组,每个对象都是一个包含3 ,an 和an的类。这些值是从.txt文件中读取的,并基于的值添加到数组的特定索引中。.txt文件中的条目较少,然后数组中存在索引,因此该数组最终看起来像这样: 后来在节目中,我需要的基础上平均的排序的数组中。我有一个工作方法返回这个,但是当我尝试使用数组进行排序和我开始得到这些错误的一个长长的清单: 我的方法

  • 本文向大家介绍对比Java中的Comparable排序接口和Comparator比较器接口,包括了对比Java中的Comparable排序接口和Comparator比较器接口的使用技巧和注意事项,需要的朋友参考一下 Comparable Comparable 是排序接口。 若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在

  • 免责声明:我已经发布过这样一个问题,它被标记为重复。请帮帮我。我已经看过了stackoverflow之前的所有方法,但都没有任何帮助。在我的例子中,提到的所有对Map(Key,Values)进行排序的方法都不起作用,因为我还有一个步骤,即检索值的属性。这一次,我试着详细讲述。 我有一个地图(字符串,对象)在Java,我想排序它使用对象的属性之一。 假设我有一堂课 现在,我创建了一张地图 我想通过类