作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的contains
该方法对于较小的指数适用,但对于大指数(例如测试用例 1000、2000、2999)则不起作用。我不明白为什么。我检查了循环中 print 语句的输出,这表明我正在检查的数字存在于对象数组中。
假设数组和元素中的对象都是int。数据是 Object []
public boolean contains(E element) {
boolean flag = false;
if (this.size() == 0) { return flag;}
for (int i = 0; i < this.data.length; i++) {
if (element == this.data[i]) { flag = true; }
System.out.println(this.data[i]);
}
return flag;
}
@Test
public void mustGrowArray() {
OurSet<Integer> ints = new ArraySet<Integer>();
for (int i = 0; i < 3000; i++) {
ints.add(i);
}
assertEquals(3000, ints.size());//passes
assertTrue(ints.contains(1000));// fails
assertTrue(ints.contains(2000));// fails
assertTrue(ints.contains(2999));// fails
}
最佳答案
==
不是 .equals
!
在此行中使用 .equals
来代替,
if (element == this.data[i])
至
if (element.equals(this.data[i]))
希望有帮助。
关于java - 如何使用泛型修复 contains 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56766322/
我是一名优秀的程序员,十分优秀!