黑马程序员技术交流社区
标题:
关于遍历查找
[打印本页]
作者:
381890216
时间:
2015-9-30 17:50
标题:
关于遍历查找
遍历查找,对于数组内有重复元素的,
如果用程序一的写法:
//遍历查找,程序一
public class Day05{
public static void main(String[] args){
int[] i = {3,1,4,3,5,2,3,4};
for (int x=0; x<i.length; x++){
if(i[x]==4)
System.out.println(x);
}
}
}
复制代码
输出
2
7
但是用第二种写法:
//遍历查找,程序二
public class Day05{
public static void main(String[] args){
int[] i = {3,1,4,3,5,2,3,4};
int i1 = getIndex(i,4);
System.out.println(i1);
}
static int getIndex(int[] arr, int key){
for (int x=0; x<arr.length; x++){
if (arr[x] == key)
return x;
}
return -1;
}
}
复制代码
因为只能return一个结果,所以只能输出2,
有没有办法让程序二也输出2 7?
作者:
guaiqiaorener
时间:
2015-9-30 18:14
谢谢分享
作者:
lostyou
时间:
2015-9-30 18:25
class {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
public class Day05{
public static void main(String[] args){
int[] i = {3,1,4,3,5,2,3,4};
int i1 = getIndex(i,4);
System.out.println(i1);
}
static int[] getIndex(int[] arr, int key){
int []temp=new int[arr.length];
int count=0;
for (int x=0; x<arr.length; x++){
if (arr[x] == key)
temp[count++]=arr[x];
}
return temp;
//如果这里想打印出来就把返回值写void,再遍历数组就可以了.
//或者在main里定义个数组接收再自己遍历
}
}
复制代码
你要返回的是int 那你又想返回2个值 ( 方法只能有一个返回值的),所以只能存在数组里打出来了.菜鸟一枚,个人理解不对请指出
作者:
桑葚之甜
时间:
2015-9-30 18:32
顶。。。。。。实用
作者:
15001162522
时间:
2015-9-30 19:41
我觉得需要定义一个集合,没找到一个index就添加到集合里一次,最后返回集合,但是getIndex的返回值就不能写int啦。不知道你学完集合部分了没,我也是菜鸟,这只是我的猜想……
作者:
381890216
时间:
2015-9-30 23:24
lostyou 发表于 2015-9-30 18:25
你要返回的是int 那你又想返回2个值 ( 方法只能有一个返回值的),所以只能存在数组里打出来了.菜鸟一枚,个 ...
后来问了朋友,说如果只用return貌似无解,最好直接在方法里输出或像你写的,用数组存起来。。。。。学习了
作者:
maxwell247
时间:
2015-10-1 00:08
没有办法。除非使用对象,或者集合。
作者:
迷茫不堪的年纪
时间:
2015-10-2 22:33
第一个求的是 元素4的重复求值吧, 第二个是先定义的getIndex ,然后直接求数组内的值。 不过看了下面的面向对象的创建使用,积累经验了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2