问题标签 [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 - 从主要包含空值的 Comparables 列表中获取最小值和最大值的最佳方法是什么?
我正在考虑这样的事情:
但不是空安全的,这也是我想要的。
你知道解决这个问题的更好方法吗?
编辑:
发表评论后,我也尝试了 min():
你对那个怎么想的?
java - < 和 > 是什么意思,例如实现 Comparable?
在Java 1.4.2中,类java.math.BigInteger实现接口Comparable,Serializable.
在Java 1.5.0中,类java.math.BigInteger实现接口Serializable,Comparable<BigInteger>.
这只是帮助我询问<and的一个例子>。我真正想知道的是<和>东西。
我的问题有三个:
<BigInteger>声明的一部分是什么implements意思?- 那语法叫什么?
- 它有什么作用?
PS:谷歌搜索真的很难,<而且一>开始就不可能搜索到。<>
谢谢!
java - 为什么 java.lang.Number 不实现 Comparable?
有谁知道为什么 java.lang.Number不实施Comparable?这意味着您不能对Numbers 进行排序,Collections.sort这在我看来有点奇怪。
发布讨论更新:
感谢所有有用的回复。我最终对这个主题做了更多的研究。
为什么 java.lang.Number 不实现 Comparable 的最简单解释源于可变性问题。
稍微回顾一下,是, , , , , , , , andjava.lang.Number的抽象超类型。在那个列表上,并且不执行.AtomicIntegerAtomicLongBigDecimalBigIntegerByteDoubleFloatIntegerLongShortAtomicIntegerAtomicLongComparable
挖掘了一下,我发现Comparable在可变类型上实现并不是一个好习惯,因为在比较期间或之后对象可能会发生变化,从而使比较结果变得无用。AtomicLong和都是AtomicInteger可变的。API 设计者有先见之明没有Number实现Comparable,因为它会限制未来子类型的实现。确实,AtomicLong并且在最初实现AtomicInteger之后很久就被添加到 Java 1.5中。java.lang.Number
除了可变性之外,这里可能还有其他考虑因素。一个compareTo实现Number必须将所有数值提升为,BigDecimal因为它能够容纳所有Number子类型。这种提升在数学和性能方面的含义对我来说有点不清楚,但我的直觉发现这个解决方案很笨拙。
java - 为什么 compareTo 在 Java 中的 Enum final 上?
Java 中的枚举实现了该Comparable接口。重写Comparable的compareTo方法会很好,但在这里它被标记为最终的。Enum's上的默认自然顺序compareTo是列出的顺序。
有谁知道为什么 Java 枚举有这个限制?
java - 提高可比性比较性能
我分析了我的代码,发现我的类实现Comparable<T>了 8 倍以上的 cpu 时间
比在
我认为减速是因为此方法的虚拟表查找。
有没有办法强制静态调用函数?(就像在非虚拟 C++ 方法中一样)
我仍然想使用Comparable<T>接口,因为我使用TreeSet了这个对象并且我不想重写这个代码。
编辑:不,我没有实现compareTo(Object) - 这是由探查器自动生成和报告的
java - Java 泛型和无穷大(可比较)
使用 Integer 类型,您可以执行以下操作:
如果我使用泛型,我该怎么办?
我需要这个来实现类似于 PriorityQueue 的东西。我可以访问要从队列中删除的节点,但这不是最小值。
我被困在第一步。我唯一能做的就是将节点的键设置为当前最小值。不确定是否足够。
java - 在java中,从可比较的意思延伸是什么意思
我看到这样的代码
这是什么意思,它的优点和缺点是什么?
java - Java:使用 CollatorKey 对集合进行排序
我想要实现的是按字符串值对对象集合进行排序。但是,以依赖于语言环境的方式使用整理器。由于性能原因,我不想使用 Collator compare() 方法(如下面的代码)而不是 CollationKey 类,因为 java API 声明使用 CollationKey 要快得多。
但是如何使用 CollationKey 实现 compareTo() 方法?据我了解,如果我要使用 CollationKey,我必须自己完全编写所有比较方法。所以我什至不能再使用 Collections.sort() 方法......我非常感谢一个易于理解的示例以及使用 CollationKey 对 Person 对象的集合进行排序的最有效实现。
谢谢!
java - Java 泛型的乐趣
有人知道如何使用泛型编写下面的代码并避免编译器警告吗?(@SuppressWarnings("unchecked") 被认为是作弊)。
而且,也许,通过泛型检查 "left" 的类型是否与 "right" 的类型相同?
java - 什么时候类应该是 Comparable 和/或 Comparator?
我见过同时实现Comparable和Comparator的类。这是什么意思?为什么我要使用其中一个?