更新数组列表Java中的特定对象项 [英] Update specific object items inside array list 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屋!