有没有简单的方法来搜索arraylist? 我看到有很多事情要处理像removeAll()这样的集合,而add()有这样的东西可以用来搜索列表
答案 0 :(得分:2)
向UserArchive
类添加一个循环遍历列表的方法,并将每个用户ID与传入的用户ID进行比较。
public User findById(int id) {
for (User u : list) {
if (u.getCustomerID() == id) {
return u;
}
}
return null; // or empty User
}
答案 1 :(得分:0)
您可以选择在循环中执行if并在循环中查看User的每个实例的id:
for (User user : list) {
if (user.getCustomerID == [The id to lookup]) {
// Whatever you want to do
}
}
或者您可以覆盖User类的equals()方法并解锁 如果您比较User的另一个实例而不是CustomerID,则List.contains函数。
equals'函数标题说:
如果此列表包含指定的元素,则返回true。更多 正式地,当且仅当此列表包含至少一个时才返回true 元素e使得(o == null?e == null:o.equals(e))。
这就是你必须为你的对象重写equals的原因。很多函数对对象使用equals(),如果你关心结果是好的,你必须覆盖函数。
// Or whatever instance of User you want to compare
User custToLookup = new User(idToLookup, "", "", "");
// You could stop here if you only want to know if the instance exist in the list
if (list.contains(custToLookup)){
for (User user : list) {
if (user.equals(custToLookup) {
// Whatever you want to do
}
}
}
*编辑:忘了一些话