嗨我有ArrayList<D>
的模型,因为我必须找到pirority的价值。
说我有拿着的模型
public class model{
String name,status; }
此列表具有价值 说位置1 - 状态&#34; D&#34; 说位置2 - 状态&#34; f&#34; 说位置3 - 状态&#34; a&#34;
现在我想它应该第一次搜索值D然后A然后F ..我正在做
for (int i = 0; i < model.size(); i++) {
//for D
return i;
}
for (int i = 0; i < model.size(); i++) {
//for A
return i;
}
for (int i = 0; i < model.size(); i++) {
//for F
return i;
}
找到
的任何好方法答案 0 :(得分:1)
您可以使用ArrayList本身提供的indexOf
方法:
public int indexOf(Object o)
返回指定元素第一次出现的索引 此列表,如果此列表不包含该元素,则返回-1。更多 正式地,返回最低的索引i,使得(o == null?get(i)== null :o.equals(get(i))),如果没有这样的索引,则为-1。
但是,要使其工作,您需要对D
类进行一个小的安排,其中如果这个类的两个实例具有相同的status
值,则它们是相等的。因此,您需要覆盖 equals
方法。
public class D {
String name;
String status;
...
@Override
public boolean equals(Object obj) {
if(obj instanceof D)
return ((D)obj).getStatus().equals(this.getStatus());
return false;
}
}
用法:
List<D> myList = ...;
//Search for an item which has a status of 'D'
D searchKey = new D();
d.setStatus("D");
//This will go through the entire array list and gets the location of the first element which satisfies D's equals method.
int index = myList.indexOf(searchKey);