在运行java.util.Collections排序(List <t>)函数之前,我们知道什么是真的?

时间:2016-01-26 22:19:44

标签: java sorting collections specifications

当我们查看Collections排序方法时,我们可以确定它在运行之前是否正确?我知道给出的清单必须是:

  • 可比
  • 不为空

我缺少这种方法的其他“先决条件”吗?

1 个答案:

答案 0 :(得分:1)

javadoc应该是您的初始入口点:

  

列表中的所有元素都必须实现Comparable接口。   此外,列表中的所有元素必须是可相互比较的(即,e1.compareTo(e2)不得为列表中的任何元素e1和e2抛出ClassCastException。)   指定的列表必须是可修改的,但无需调整大小。

例外:

  

抛出:
  ClassCastException - 如果列表包含不可相互比较的元素(例如,字符串和整数)   UnsupportedOperationException - 如果指定列表的list-iterator不支持set操作   IllegalArgumentException - (可选)如果实现检测到列表元素的自然顺序违反了可比较合同