return -1;地方写错了,你这样想:第一次for循环,if(true)就return 了0。如果if(false)则会执行return -1;所以你的返回值不是0就是-1。
再者,你这个算法写得。。。你要先对items判断是否为null.如果传null你这个不就错了么?
还有equals方法是比较值,不是比较对象,如果你传的是内容值相等,对象不同,返回的是true。
-
- Poetaster_true 回复caozhy: 我也这么认为
- 3 年多之前 回复
-
- 贵阳老马马善福专业维修游泳池堵漏防水工程 equal对于引用,比较对象,相当于referenceequal,值类型比较值,这个没问题。
- 3 年多之前 回复
在循环外面加上 return - 1;
我相信lz只是做一个习作,因为.net其实封装好了,FindIndex
比如
int[] arr = {1,2,3,4,5,6};
int i = arr.ToList().FindIndex(x => x == 1); // 0
直接用就可以了。
首先你的return -1 写错地方了,其次equals是比较值的,不是比较对象的,Java里有专门的对象比较器,你可以多熟悉熟悉基础,这些都是小问题。