How can I update the record from my Arraylist
object?
e.g:
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);
Now I want to update the specific records on my ArrayList
. Let's 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.
If you know the position of the element do only the following:
userList.get(index).setUsername("newvalue");
If not, you need to loop all the elements to find the element to update
for (User user : userList) {
if (user.getUserId().equals(searchedId)) {
user.setUsername("newvalue");
break;
}
}
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);
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).
for(User user : userList) {
if(user.getId == 2) {
user.setUsername("newUsername")
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With