更新数组列表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更有效且易于使用(并且可以维护). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |