【发布时间】:2015-06-26 10:00:31
【问题描述】:
最近,在为大学做作业时,我遇到的一件事是对二维数组进行排序和搜索。
使用Arrays.sort(example); 或Arrays.binarySearch(example, "xyz"); 会返回错误:
示例不能转换为 java.lang.Comparable
我不得不使用嵌套的 for 循环而不是二分搜索,尽管我希望以有效的方式来做。
我遇到的另一个问题是使用Arrays.asList(example).contains("xyz");,它似乎从来没有工作过。然后我使用System.out.println(Arrays.asList(example)); 检查出了什么问题。这就是我得到的:
[[I@1575c7e, [I@795f24, [I@554210, [I@16433e4, [I@18ada25, [I@f7bd29, [I@a3cf3e, [I@7af3e0, [I@21151e, [我@1f194d9]
这是什么,最重要的是解决这些问题的最佳方法是什么?
还有一个后续问题 - 为什么有些错误(如 example cannot be cast to java.lang.Comparable 仅在程序运行时出现,而不是在编译时出现?
非常感谢任何帮助。
【问题讨论】:
-
如果您显示更多代码会有所帮助,特别是您填充数组的位置以及填充什么
-
对二维数组进行排序毫无意义。你会如何对
{{1, 4}, {2, 3}}进行排序? +++ 我不得不使用嵌套的 for 循环而不是二分搜索,虽然我希望这样做是有效的方式。 - 二分搜索是有效的,但仅限于已经 i> 排序数组。如果加上分拣的费用,那就不赔了。
标签: java arrays performance sorting