加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

更新数组列表java中的特定对象项

发布时间:2020-12-15 04:46:54 所属栏目:Java 来源:网络整理
导读:我想问一个问题,我如何更新数组列表对象中的记录: 例如: ListUser userList = new ArrayListUser();User user = new User();user.setUserId(1);user.setUsername("user1");userList.add(user);User user = new User();user.setUserId(2);user.setUsername(
我想问一个问题,我如何更新数组列表对象中的记录:

例如:

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的用户名
例如:

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)然后删除或使用新值更新它.

提前致谢.

解决方法

在你的情况下,我认为使用Map而不是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:

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

如果您只需要通过一个字段(在这种情况下为userId)查找对象,则Map更有效且易于使用(并且可以维护).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读