A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一组数组中如果有两个或多个相同数据,如何查找key

如上图,数组里面有两个11,按照老师讲的只能打印出2.如果两个都想打印出来怎么办?
我这么试了一下


这样可以显示两个,但是-1也显示了出来。
求大神帮忙指导一下,谢谢!

9 个回复

倒序浏览
第一个图上传好,再上传一下。。:(
回复 使用道具 举报
本帖最后由 苏乞儿 于 2014-9-13 01:51 编辑

不是跟理解楼主具体什么意思,但是肯定一点,return -1;作为getIndex()函数的返回值,不管是否找到key最后getIndex的结果都会带着个-1.。。
回复 使用道具 举报
苏乞儿 发表于 2014-9-13 01:50
不是跟理解楼主具体什么意思,但是肯定一点,return -1;作为getIndex()函数的返回值,不管是否找到key最后 ...

就是想查找下标,同一数组里面如果有两个相同的数,但是返回-1肯定是错误的;当查找的数在数组中没有时会返回-1,这时才返回-1
回复 使用道具 举报
return -1;放在最后面,所以 你调用一次getIndex方法总是会返回-1的啊

你的方法应该是返回一个int[],因为有可能有多个
把return -1换成return null;
回复 使用道具 举报
本帖最后由 李春丽 于 2014-9-13 20:44 编辑
  1. public class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] arr = {33,22,11,11,55,66};
  6.                 //System.out.println(getIndex(arr,11));
  7.                 getIndex(arr,11);
  8.         }
  9.         public static void getIndex(int[] arr,int key)
  10.         {
  11.                 for(int i = 0;i<arr.length;i++)
  12.                 {
  13.                         if(arr[i] == key)
  14.                         {
  15.                                 System.out.println(arr[i]);
  16.                                 continue;  // 结束本次循环,继续下一次循环,保证了每一项都能查看到。
  17.                         }
  18.                 }
  19.                 //return -1;
  20.         }
  21. }
复制代码

这样写代码就好了,直接打印在控制台上的方法。

也可以吧结果存放到一个数组中,用 return 语句返回 int[]型 数组。

点评

可以了,谢谢老兄  发表于 2014-9-15 23:43
回复 使用道具 举报 1 0
优乐 发表于 2014-9-13 11:14
return -1;放在最后面,所以 你调用一次getIndex方法总是会返回-1的啊

你的方法应该是返回一个int[],因 ...

因为想的是,当查找的这个数在数组中没有的时候,就返回一个-1,楼下那位的指导的挺好{:2_32:}
回复 使用道具 举报
pvting 中级黑马 2014-9-16 00:05:38
8#
可以把具体的题目晒出来吗?
回复 使用道具 举报
pvting 发表于 2014-9-16 00:05
可以把具体的题目晒出来吗?

这个不是题目,就是我学习的时候的一些想法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马