-1

有没有简单的方法来搜索数组列表?我看到像 removeAll() 和 add() 这样的集合有很多事情要做

4

2 回答 2

2

向您的类添加一个方法,该方法UserArchive循环遍历列表并将每个用户 id 与传入的用户 id 进行比较。

public User findById(int id) {
    for (User u : list) {
        if (u.getCustomerID() == id) {
            return u;
        }
    }
    return null; // or empty User
}
于 2013-04-05T12:47:07.047 回答
0

您可以选择在循环中执行 if 并查看循环中每个 User 实例的 id:

for (User user : list) {
    if (user.getCustomerID == [The id to lookup]) {
       // Whatever you want to do
    }
}

或者,如果您比较 User 的另一个实例而不是 CustomerID,您可以覆盖 User 类的 equals() 方法并解锁 List.contains 函数。

equals 的函数标题说:

如果此列表包含指定元素,则返回 true。更正式地说,当且仅当此列表包含至少一个元素 e 满足 (o==null ? e==null : o.equals(e)) 时,才返回 true。

这就是为什么你必须为你的对象覆盖 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
        }
    }
}

*编辑:忘记了一些词

于 2013-04-05T12:59:00.427 回答