更新数组列表Java中的特定对象项 [英] Update specific object items inside array list java

查看:188
本文介绍了更新数组列表Java中的特定对象项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想问一个问题,如何从数组列表对象更新记录:

I would like to ask a question how can i update the record from my array list object:

例如:

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

User user = new User();
user.setUserId(1);
user.setUsername("user1");
userList.add(user);

User user = new User();
user.setUserId(2);
user.setUsername("user2");
userList.add(user);

User user = new User();
user.setUserId(3);
user.setUsername("user3");
userList.add(user);

现在我想更新数组列表中的特定记录,假设我想更新用户ID#2的用户名 例如:

Now i want to update the specific records on my array list, let say I want to update the username of user id #2 e.g:

User user = new User();
user.setUserId(2);
user.setUsername("new_username2");

//before i want to remove or update the record on the list which contain user id #2
userList.add(user);

类似的东西,我想从userList.contains(2)的列表中进行搜索,然后使用新值删除或更新它.

something like i want to search from the list that userList.contains(2) then remove or update it with the new values.

谢谢.

推荐答案

在您的情况下,我认为使用Map而不是List更好:

In your case I think it's better using a Map instead of a List:

Map<Integer, User> userMap = new HashMap<Integer, User>();

User user = new User();
user.setUserId(1);
user.setUsername("user1");
userMap.put(user.getUserId(), user);

user = new User();
user.setUserId(2);
user.setUsername("user2");
userMap.put(user.getUserId(), user);

user = new User();
user.setUserId(3);
user.setUsername("user3");
userMap.put(user.getUserId(), user);

通过这种方式,您可以直接搜索所需的userId:

In this way, you can search directly for the userId you need:

User userToModify = userMap.remove(idToModify);
userToModify.setUsername("new name");
userToModify.setUserId(54);
userMap.put(user.getUserId(), userToModify);

如果只需要按一个字段(在这种情况下为userId)查找对象,则Map效率更高,并且易于使用(和维护).

If you need to find object only by one field (userId, in this case), a Map is far more efficient and easy to use (and to maintain).

这篇关于更新数组列表Java中的特定对象项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆