问题标签 [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.
java - 使用多个键对 Java 对象进行排序
我有一组 Duck 对象,我想使用多个键对它们进行排序。
例如。我想主要按体重排序,其次按年龄排序。如果两只鸭子的重量和年龄完全相同,那么让我们用它们的名字作为第三键来区分它们。我可能会做这样的事情:
好吧,我经常这样做,但是这个解决方案闻起来不太对。它不能很好地扩展,而且很容易搞砸。肯定有更好的方法来使用多个键对 Ducks 进行排序!有人知道更好的解决方案吗?
编辑删除了不必要的else
分支
java - 从具有具体子类的抽象类实现 Comparable 接口
圆类
矩形类
所以我试图做这个单独的类并不断得到这个错误。
java - 程序使用 Comparable 接口返回字符串、日期、整数的最大值
虽然以通用的 max(a, b) 格式编写它可能更容易,但其中一个要求是以这种方式编写。我找不到引用实际调用 compareTo 方法的对象值的方法。
java - 使用 BigInteger 计算序列
我已经为此工作了几个小时,但我绝对碰壁了。目标是使用 BigInteger 对一系列分数求和。由于某种原因,当 r2 的分子和分母应该是 1/2 时,它们是相等的。最终结果也不正确,因为分母不应该是 0。我错过了什么,或者我做错了什么?
php - 是否可以在 php 中进行 python 丰富的比较?
我的梦想之一是__eq__
在 php 对象上使用 python 丰富的比较(类似)。
例如,我想要一些智能机制来快速比较数据库 id 上的模型(对象)。
在PHP中以某种方式可能吗?
ruby - Ruby - 使用 Comparable mixin 比较两个不同属性的对象
是否有一种简单的方法(即使用 spaceship 运算符)在 Ruby 中基于两个不同的属性定义比较?即,如果我有一个包含两个属性 attr1 和 attr2 的类,是否有一种 Rubyesque 方法可以在 attr1 上比较此类的两个实例,如果它们相等,则在 attr2 上比较它们?
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>
。使用原始类型肯定“有效”,但这是正确的方法吗?
data-structures - 有序插入偶尔使用原始类型和字符串
对于一项任务,我们被要求在 Java 中将 LinkedLists 的有序和无序版本实现为 Bags。有序版本将简单地扩展无序实现,同时覆盖插入方法。
插入功能的排序工作......有点。给定一个测试数组
输出是
什么时候应该
但是,当元素的值没有混淆时,排序工作正常。例如,我最初使用testArray[]
上面的 alphabe 反转,并且排序完全符合它应该的顺序。
我的添加功能是
迭代器功能实现为
就像现在一样,唯一使用的是原始类型。我知道对于对象,必须编写一个特定的可比较类,但在这种情况下,String 包含一个 compareTo() 方法,该方法应该给出正确的顺序。
碰巧,我的一个同学有类似的实现,并返回相同的结果。
使用自然排序,我该如何解决这个问题?
java - 定义实现可比较的接口
我正在尝试定义一个接口,以便所有实现类必须与它们自己及其子类可比较。
例如,考虑:
这意味着实现类必须与所有评级可比:
我想放宽这个要求,以便我可以定义一个类,如:
java - 存储可比较对象的通用 java 类
我有一个通用的 java 类来存储可比较的:
我还有一个名为 Person 的抽象类:
和两个具体的子类,教授和学生:
现在,当我想像这样创建 MyGenericStorage 时,出现错误:
我认为这是因为我在理解泛型方面存在根本问题。有人可以向我解释一下,以及如何解决吗?
编辑:
我已将 MyGenericStorage 更改为以下内容:
现在它似乎工作了。有人可以解释为什么吗?