草庐IT

Comparable

全部标签

swift - 扩展 T 的数组,其中 T 是 Comparable

我想创建一个扩展来扩展T的数组,其中T是Comparable;有点像这样:extensionArraywhereElement==Array{}不幸的是,这不起作用。有办法吗?谢谢 最佳答案 这实际上在Swift4中可用!您可以在文档中阅读相关信息here但这里有一个片段(这将使用新的xcode9及更高版本进行编译)extensionArraywhereElement:Equatable{funcisTop(_item:Element)->Bool{guardlettopItem=self.lastelse{returnfalse}

swift - 创建 Comparable 和 Hashable 键的字典?

这似乎是一个非常基本的问题,但一直无法找到答案。这是我试过的varitems=[Comparable:[NSObject]]()varitems=[Comparable,Hashable:[NSObject]]()varitems=[protocol:[NSObject]]()typealeasKey=TwhereT:Hashable,T:Comparablevaritems=[Key:[NSObject]]() 最佳答案 Comparable和Hashable都不能自己作为类型使用,因为它们的定义中包含了Self,只能作为通用约束

swift - 参数类型 'T.Type' 不符合预期类型 'Comparable'

我试图在swift中创建一个小类,但得到以下错误参数类型T.TypedoesnotconformtoexpectedtypeComparable有人可以帮忙吗?structBST{letroot:Node?varcount=0init(data:T){self.root=Node(data:T)//ErrorOccursinthisline}}//endclassBST这是Node类的代码。classNode{letdata:Tvarleft:Node?varright:Node?init(data:T){self.data=data}//endinit}//endclassnodef

java - 将 Comparable 的实例传递给需要 Comparator 的方法

Java8中的Stream类定义了一个max方法,它需要一个Comparator参数。这是方法签名:Optionalmax(Comparatorcomparator)Comparator是一个函数式接口(interface),具有带有此签名的抽象compare方法。注意compare需要2个参数。intcompare(To1,To2)Comparable接口(interface)有一个带有此签名的抽象compareTo方法。注意compareTo只需要1个参数。intcompareTo(To)在Java8中,以下代码可以完美运行。但是,我预计会出现编译错误,例如“Integer类未定义

java - 列表到 TreeSet 的转换产生 : "java.lang.ClassCastException: MyClass cannot be cast to java.lang.Comparable"

ListmyclassList=(List)rs.get();TreeSetmyclassSet=newTreeSet(myclassList);我不明白为什么这段代码会生成这个:java.lang.ClassCastException:MyClasscannotbecasttojava.lang.ComparableMyClass没有实现Comparable。我只想使用Set来过滤List的唯一元素,因为我的List包含不必要的重复元素。 最佳答案 是否MyClassimplementsComparable或类似的东西?如果不是,

java - 如何使用枚举实现接口(interface),接口(interface)扩展 Comparable?

考虑这段代码:publicinterfaceFooextendsComparable{}publicenumFooImplimplementsFoo{}由于类型删除的限制,我收到以下错误:java.lang.Comparablecannotbeinheritedwithdifferentarguments:and我有以下要求:FooImpl需要是一个枚举,因为我需要将它用作注释中的默认值。我的接口(interface)约定是它需要具有可比性。我已经尝试在接口(interface)中使用通用边界,但这在Java中不受支持。 最佳答案

java - 我怎样才能多次实现 Comparable ?

我正在将一些代码升级到Java5,但我显然不了解泛型。我还有其他实现Comparable一次的类,我已经能够实现了。但是现在我有一个类,由于继承,它最终尝试为2种类型实现Comparable。这是我的情况:我有以下类/接口(interface):interfaceFooextendsComparableinterfaceBarextendsComparableabstractclassBarDescriptionimplementsBarclassFooBarextendsBarDescriptionimplementsFoo有了这个,我得到错误“接口(interface)Compar

java - 用泛型类实现 Comparable

我想定义一个实现通用Comparable接口(interface)的类。在我的类里面,我还定义了一个泛型类型元素T。为了实现接口(interface),我将比较委托(delegate)给T。这是我的代码:publicclassItem>implementsComparable{privateints;privateTt;publicTgetT(){returnt;}@OverridepublicintcompareTo(Itemo){returngetT().compareTo(o.getT());}}当我尝试编译它时,我得到以下错误信息:Item.java:11:error:meth

java - 使用非 Comparable 类 : why a run-time exception, 而不是编译时错误创建 TreeSet?

如果我创建一个未实现Comparable的任意类,并尝试将其用作树集,它会在插入对象时在运行时抛出异常:publicclassFoo{}publicTreeSetfooSet=newTreeSet();fooSet.add(newFoo());//ThrowsaClassCastExceptionexceptionhere:Fooisnotcomparable我不是Java专家,但似乎以一种我没有预料到的方式动态输入(alaPython)。TreeSet的实现是否无法指定其泛型类型参数必须实现Comparable以便可以在编译时捕获?非泛型函数可以将接口(interface)作为参数;

Java 8 流 max() 函数参数类型 Comparator 与 Comparable

我写了一些简单的代码,如下所示。这个类工作正常,没有任何错误。publicclassTest{publicstaticvoidmain(String[]args){ListintList=IntStream.of(1,2,3,4,5,6,7,8,9,10).boxed().collect(Collectors.toList());intvalue=intList.stream().max(Integer::compareTo).get();//intvalue=intList.stream().max(comparatortypeshouldpasshere>).get();Syste