I would like to ask a question how can i update the record from my array list object:
e.g:
List userList = new ArrayList();
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);
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);
something like i want to search from the list that userList.contains(2) then remove or update it with the new values.
Thanks in advance.
解决方案
In your case I think it's better using a Map instead of a List:
Map userMap = new HashMap();
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);
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);
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).