可以说我有一堂课
public class Data{
public int k;
public int l;
public Data(int k, int l){
this.k = k;
this.l = l;
}
public boolean equals(Date m){
if(this.k == m.k && this.l = m.l)
return true;
return false;
}
}
我将一些数据对象添加到ArrayList中:
ArrayList<Data> holder = new ArrayList<Data>;
Data one = new Data(0,0);
Data two = new Data(0,4);
Data three = new Data(0,5);
为什么indexOf找不到这个?:
holder.indexOf(new Data(0,4)); //returns -1
indexOf是否比我自己遍历整个数组列表更好?还是我错过了一些东西。
该indexOf()
方法 不 经过整个列表。这是Java 7源代码的摘录:
public int indexOf(Object o) {
if (o == null) {
for (int i = 0; i < size; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = 0; i < size; i++)
if (o.equals(elementData[i]))
return i;
}
return -1;
}
让Java通过它比自己编写它更好。只要确保您的equals
方法足以找到所需的对象即可。您还需要覆盖hashCode()
。
我不会写出您的equals
方法,但是我建议您至少:
if(boolean_expr) { return true; }
; 只需返回布尔表达式。equals
方法-该方法的签名需要一个Object
参数,而不是Date
。问题内容: 例如我有这个数组: 如何从对象获取价值指数?例如“ Country”:“ Austria”,该指数为3 问题答案: 您可以在最新的浏览器中使用,但Internet Explorer中不支持此功能,只有Edge 为了在IE9及更高版本中提供支持,您可以改用
我有一个对象数组,当我使用indexOf时,我想在其中找到所选对象的索引,我得到的值为-1,任何人都可以告诉我如何在javascript中找到对象的indexOf
我有一个ArrayList,从ArrayList的末尾(即使用add(object)方法)以串行方式(即逐个)填充Integer类型的对象。每次我这样做,ArrayList中的其他对象都会左移一个索引。 在我的代码中,我想在ArrayList中找到一个随机对象的索引。我想避免使用indexOf方法,因为我有一个非常大的ArrayList,循环将花费大量时间。有什么解决办法吗?如何在某些数据结构中保
问题内容: 我在MongoDB上的Java查询中遇到了一些麻烦。 我在数据库中具有以下结构: 我想在数据库中查询字段’Status.name’,例如SELECT * FROM table WHERE status.name =’Expired’ 我将如何在Java中为MongoDB进行这样的查询? 感谢您的帮助或建议! 问题答案: 这是一个例子:
你会认为这是一件简单的事情。我有一个在我的集合中的对象ID列表。我想根据对象ID获得一条记录。谷歌过,但没有任何帮助。 所以我有对象id:5106c7703abc120a04070b34 此打印: 我试过上述发现的不同版本。它们都无法编译: 查找({_id= 它们都不起作用。如何使用对象id查找(findone)单个记录??
问题内容: 我有一个数组: 我无法更改数组的结构。我正在传递ID为,我想获取数组中的该对象。 如何在JavaScript或jQuery中做到这一点? 问题答案: 使用方法: 从MDN: 如果数组中的元素满足提供的测试功能,则该方法返回数组中的第一个值。否则返回。 如果要查找其 索引 ,请使用: 从MDN: 该方法返回满足提供的测试功能的数组中第一个元素的索引。否则返回-1。 如果要获取匹配元素的数