无法在for循环中向List添加对象?

时间:2014-01-06 11:51:04

标签: java arrays list for-loop foreach

如何在for循环中将对象添加到此列表?

Transaction tx = currentSession.beginTransaction();
Criteria criteria = currentSession.createCriteria(User.class);

List<User> list = criteria.list();
List<User> userList;

for(User user : list) {
    if(user.getAccountActivated() == 1) {
        userList.add(user);
    }
}

我尝试了上述内容,但它不起作用。

有人知道这里有什么问题吗?

2 个答案:

答案 0 :(得分:5)

您必须初始化userList,如

List<User> userList = new ArrayList<User>();

或者,如果您使用Java SE 7,new ArrayList<>();

答案 1 :(得分:3)

您忘记初始化userList

List<User> userList = new ArrayList<User>();

如果您正在使用Java 7,you can replace the type arguments required to invoke the constructor of a generic class with an empty set of type parameters (<>)

List<User> userList = new ArrayList<>();

如果您使用的是Java 8,则可以使用stream并过滤原始列表:

List<User> userList = list.stream()
                          .filter(u -> u.getAccountActivated() == 1)
                          .collect(Collectors.toList());