gpt4 book ai didi

java - ArrayList 根据 pojo 对象查找字段

转载 作者:行者123 更新时间:2023-11-30 01:41:28 26 4
gpt4 key购买 nike

嗨,我有 ArrayList<D> 的型号因为我必须根据 pirority 找到值(value)。 说我有模型

public class model{
String name,status; }

这个列表很有值(value)说位置 1 - 状态“D”说位置 2 - 状态“f”说位置 3 - 状态“a”一些在

现在我希望它应该首先搜索值 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;
}

有什么好的方法可以找到

最佳答案

您可以使用 indexOf ArrayList自身提供的方法:

public int indexOf(Object o)

Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the lowest index i such that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.

但是,要使其正常工作,您需要对 D 类进行一些小的安排,其中如果此类的两个实例具有相同的 status,则它们是相等的值(value)。因此,您需要覆盖 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);

关于java - ArrayList 根据 pojo 对象查找字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com