为什么Arrays.binarySearch(Object [],Object)需要Object args?

米沙克斯

方法

public static int binarySearch(Object[] a, Object key) 

通过数组参数在其执行导航所述阵列类的a所述的binarySearch算法和转换元件以下aComparable并调用compareTo(key),直到它找到一个匹配或运行的可能性进行。

但是,我对实现感到困惑,如果是这种情况,该方法总是将元素强制转换为Comparable,并且ClassCastException如果遇到未实现的元素,则会抛出a Comparable,对于API用户而言,该方法是否更清楚将仅考虑数组元素的比较器,而不考虑键的比较器,通过防止在数组类型与Comparable不兼容的情况下进行调用来进行编译,从而提高安全性,并且在以下情况下更有效地执行该方法被定义为

public static int binarySearch(Comparable[] a, Object key) 

将第一个参数定义为Object数组有什么好处?

编辑我发布问题后才看到它,并且已经回答了,但是这里有一篇相关的文章:为什么Arrays.sort采用Object []而不是Comparable []?他们声明如果该方法采用参数(Comparable [],Object),则无法在没有“重新分配”的情况下将Object []类型的数组传递给该方法,这也是很昂贵的。

米沙克斯

请参阅为什么Arrays.sort使用Object []而不是Comparable []?问题在于,这将对声明为Object []类型的数组造成问题,即使它们仅包含Comparables。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Object obj(args ...)和Object obj {args ...}`有什么区别?

来自分类Java

为什么将String的format(Object ... args)定义为静态方法?

来自分类Dev

为什么使用 params object[] 作为 args 调用方法会引发强制转换错误?

来自分类Javascript

{} + []-为什么是0或[object Object]?

来自分类Dev

为什么这个函数需要 static_cast<Object&&> ?

来自分类Java

为什么Arrays.sort使用Object []而不是Comparable []?

来自分类Java

为什么在Java中需要String [] args?

来自分类Dev

Dictionary <string,object>与List <string> + BinarySearch的性能

来自分类Dev

为什么需要在Component中编写Object = Object才能在Angular中获取Object.keys?

来自分类Java

为什么binarySearch需要排序数组?

来自分类Dev

为什么已经有“ println(Object x)”时为什么需要“ println(char [] x)”-Java

来自分类Dev

为什么`Object() === new Object()` 等于`false`?

来自分类Dev

为什么在JavaScript中使用Object()!= Object()?

来自分类Dev

为什么我的数组变成[object object]

来自分类Dev

为什么我得到 [object object]

来自分类Dev

为什么Object.prototype.toString返回[object Object]

来自分类Javascript

为什么[object Object]两次提到“ object”?

来自分类Dev

为什么<object>的类型是函数?

来自分类Java

为什么对于equals方法我们需要一个Object参数?

来自分类Javascript

为什么在使用babel-loader时Object.assign()需要polyfill?

来自分类Java

为什么我们需要将Object类作为所有类的基类?

来自分类Dev

我们为什么需要在vaadin的绑定中设置bean ** binder.setBean(object)**

来自分类Dev

为什么我需要使用-fPIC来编译--unresolved-symbols = ignore-in-object-files?

来自分类Java

为什么java.util.Arrays.sort(Object [])使用2种排序算法?

来自分类Java

为什么Java 6 Arrays#sort(Object [])从小型数组的mergesort变为insertsort?

来自分类Dev

Ember.Object实例中的必需属性(构造函数args)

来自分类Dev

升级Java后,Mockito验证方法因Object ... args而失败

来自分类Java

在jdbcTemplate.update(String sql,Object [] args,int [] argTypes)和jdbcTemplate.update(String sql,Object [] args)之间进行选择

来自分类Dev

为什么在JavaScript中{} + {}变成“ [object Object] [object Object]”,但是[] + []变成空字符串?

Related 相关文章

  1. 1

    Object obj(args ...)和Object obj {args ...}`有什么区别?

  2. 2

    为什么将String的format(Object ... args)定义为静态方法?

  3. 3

    为什么使用 params object[] 作为 args 调用方法会引发强制转换错误?

  4. 4

    {} + []-为什么是0或[object Object]?

  5. 5

    为什么这个函数需要 static_cast<Object&&> ?

  6. 6

    为什么Arrays.sort使用Object []而不是Comparable []?

  7. 7

    为什么在Java中需要String [] args?

  8. 8

    Dictionary <string,object>与List <string> + BinarySearch的性能

  9. 9

    为什么需要在Component中编写Object = Object才能在Angular中获取Object.keys?

  10. 10

    为什么binarySearch需要排序数组?

  11. 11

    为什么已经有“ println(Object x)”时为什么需要“ println(char [] x)”-Java

  12. 12

    为什么`Object() === new Object()` 等于`false`?

  13. 13

    为什么在JavaScript中使用Object()!= Object()?

  14. 14

    为什么我的数组变成[object object]

  15. 15

    为什么我得到 [object object]

  16. 16

    为什么Object.prototype.toString返回[object Object]

  17. 17

    为什么[object Object]两次提到“ object”?

  18. 18

    为什么<object>的类型是函数?

  19. 19

    为什么对于equals方法我们需要一个Object参数?

  20. 20

    为什么在使用babel-loader时Object.assign()需要polyfill?

  21. 21

    为什么我们需要将Object类作为所有类的基类?

  22. 22

    我们为什么需要在vaadin的绑定中设置bean ** binder.setBean(object)**

  23. 23

    为什么我需要使用-fPIC来编译--unresolved-symbols = ignore-in-object-files?

  24. 24

    为什么java.util.Arrays.sort(Object [])使用2种排序算法?

  25. 25

    为什么Java 6 Arrays#sort(Object [])从小型数组的mergesort变为insertsort?

  26. 26

    Ember.Object实例中的必需属性(构造函数args)

  27. 27

    升级Java后,Mockito验证方法因Object ... args而失败

  28. 28

    在jdbcTemplate.update(String sql,Object [] args,int [] argTypes)和jdbcTemplate.update(String sql,Object [] args)之间进行选择

  29. 29

    为什么在JavaScript中{} + {}变成“ [object Object] [object Object]”,但是[] + []变成空字符串?

热门标签

归档