发现一个奇怪问题

GenRong 2009-07-31 06:42:21

import java.util.*;
public class Test{

public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>(20);

for (int i = 0; i < 20; i++) {
list.add(i);
}
System.out.println(list);
Collections.shuffle(list);

Integer[] data = list.toArray(new Integer[1]);
System.out.println(Arrays.toString(data));

for(int i=0;i<data.length;i++){
if(data[i].compareTo(8) == 0){
System.out.println("found it in: " + i);
}
}
int found = Arrays.binarySearch(data,8);
System.out.println(found);
}
}

今天练习写个二分查找的小程序,发现不能正常运行,就用类库中Arrays.binarySearch()方法测试,结果也是不正常?真奇怪,是我的JDK有问题吗?还是其它原因啊?
...全文
88 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
GenRong 2009-07-31
  • 打赏
  • 举报
回复
出笑话了,忘记了这么重要的一点
KingWolfOfSky 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bigbug9002 的回复:]
什么意思?
用binarySearch()方法 要先排序才能有正确结果!
[/Quote]
对呀,二分查找是对于已经排好序的数据进行查找啊~~
在查找之前加个排序算法吧~~
GenRong 2009-07-31
  • 打赏
  • 举报
回复
不好意思!
bigbug9002 2009-07-31
  • 打赏
  • 举报
回复
什么意思?
用binarySearch()方法 要先排序才能有正确结果!

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧