问题标签 [comparable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
16257 浏览

java - 使用多个键对 Java 对象进行排序

我有一组 Duck 对象,我想使用多个键对它们进行排序

例如。我想主要按体重排序,其次按年龄排序。如果两只鸭子的重量和年龄完全相同,那么让我们用它们的名字作为第三键来区分它们。我可能会做这样的事情:

好吧,我经常这样做,但是这个解决方案闻起来不太对。它不能很好地扩展,而且很容易搞砸。肯定有更好的方法来使用多个键对 Ducks 进行排序!有人知道更好的解决方案吗?

编辑删除了不必要的else分支

0 投票
2 回答
20280 浏览

java - 从具有具体子类的抽象类实现 Comparable 接口

圆类

矩形类

所以我试图做这个单独的类并不断得到这个错误。

0 投票
1 回答
2696 浏览

java - 程序使用 Comparable 接口返回字符串、日期、整数的最大值

虽然以通用的 max(a, b) 格式编写它可能更容易,但其中一个要求是以这种方式编写。我找不到引用实际调用 compareTo 方法的对象值的方法。

0 投票
1 回答
1071 浏览

java - 使用 BigInteger 计算序列

我已经为此工作了几个小时,但我绝对碰壁了。目标是使用 BigInteger 对一系列分数求和。由于某种原因,当 r2 的分子和分母应该是 1/2 时,它们是相等的。最终结果也不正确,因为分母不应该是 0。我错过了什么,或者我做错了什么?

0 投票
1 回答
107 浏览

php - 是否可以在 php 中进行 python 丰富的比较?

我的梦想之一是__eq__在 php 对象上使用 python 丰富的比较(类似)。

例如,我想要一些智能机制来快速比较数据库 id 上的模型(对象)。

在PHP中以某种方式可能吗?

0 投票
3 回答
3653 浏览

ruby - Ruby - 使用 Comparable mixin 比较两个不同属性的对象

是否有一种简单的方法(即使用 spaceship 运算符)在 Ruby 中基于两个不同的属性定义比较?即,如果我有一个包含两个属性 attr1 和 attr2 的类,是否有一种 Rubyesque 方法可以在 attr1 上比较此类的两个实例,如果它们相等,则在 attr2 上比较它们?

0 投票
2 回答
147 浏览

java - 可比和 Wilcard 泛型

假设我有以下课程(出于演示目的)

编译器告诉我

“类型中的方法 compareTo(capture#1-of ?)Comparable<capture#1-of ?>不适用于参数 ( Comparable<capture#2-of ?>)”

我该如何处理我想在Comparables火车上放不同的事实?当然我可以删除参数并使用原始类型,但这似乎有点逃避。

编辑:也许我给出的例子有点迟钝。我想了解的是泛型是否应该始终与Comparables. 例如,如果我要比较的对象的类直到运行时才知道:

如果我替换Comparable为,Comparable<?>那么编译器会抱怨(如上所述),因为不能保证两个强制转换操作是同一个类(捕获#1 of ? vs capture#2 of ?)。另一方面,我不能用它们替换它们Comparable<Object>,因为调用main()不匹配方法签名(即Integer实现Comparable<Integer>而不是Comparable<Object>。使用原始类型肯定“有效”,但这是正确的方法吗?

0 投票
1 回答
44 浏览

data-structures - 有序插入偶尔使用原始类型和字符串

对于一项任务,我们被要求在 Java 中将 LinkedLists 的有序和无序版本实现为 Bags。有序版本将简单地扩展无序实现,同时覆盖插入方法。

插入功能的排序工作......有点。给定一个测试数组

输出是

什么时候应该

但是,当元素的值没有混淆时,排序工作正常。例如,我最初使用testArray[]上面的 alphabe 反转,并且排序完全符合它应该的顺序。

我的添加功能是

迭代器功能实现为

就像现在一样,唯一使用的是原始类型。我知道对于对象,必须编写一个特定的可比较类,但在这种情况下,String 包含一个 compareTo() 方法,该方法应该给出正确的顺序。

碰巧,我的一个同学有类似的实现,并返回相同的结果。

使用自然排序,我该如何解决这个问题?

0 投票
2 回答
246 浏览

java - 定义实现可比较的接口

我正在尝试定义一个接口,以便所有实现类必须与它们自己及其子类可比较。

例如,考虑:

这意味着实现类必须与所有评级可比:

我想放宽这个要求,以便我可以定义一个类,如:

0 投票
3 回答
481 浏览

java - 存储可比较对象的通用 java 类

我有一个通用的 java 类来存储可比较的:

我还有一个名为 Person 的抽象类:

和两个具体的子类,教授和学生:

现在,当我想像这样创建 MyGenericStorage 时,出现错误:

我认为这是因为我在理解泛型方面存在根本问题。有人可以向我解释一下,以及如何解决吗?

编辑:

我已将 MyGenericStorage 更改为以下内容:

现在它似乎工作了。有人可以解释为什么吗?