【发布时间】:2021-04-05 09:40:29
【问题描述】:
我在向 Arraylist 添加元素时遇到问题。我创建了一个 POJO,就像我的数组列表一样。
public class GroupUserMapping {
String group;
ArrayList<String> users;
//setters getters constructor
}
我有一个函数,我正在读取一个文本文件来获取我现在存储在组数组中的组,对于那些我需要遍历其他文本文件中的所有记录并获取所有具有此组映射的用户并根据根据我的情况,我正在尝试将元素添加到 Pojo 数组列表中,如下所示:
ArrayList<GroupUserMapping> usergroups = new ArrayList< GroupUserMapping >();
ArrayList<String> users = new ArrayList<>();
ArrayList<String> groups = getGroups();// This used for lopping I have certain groups.
Scanner s = null;
String group="";
for(int i= 0;i<groups.size();i++ ){
s = new Scanner(new File(getClass().getClassLoader().getResource(mappingFile).getFile()));
s.useDelimiter("\r\n");
group=groups.get(i);
users.clear();
while (s.hasNext()) {
String aLine = s.next();
String[] value = aLine.split(":");
if(group.equalsIgnoreCase(value[0]))
{
LOGGER.info(group+":"+value[1]);
users.add(value[1]);
}
}
GroupUserMapping groupUserMapping = new GroupUserMapping(group,users);
usergroups.add(groupUserMapping);
s.close();
问题是当我为 G1 组阅读时,我得到了用户 u1、u2,并且这些映射正确存储在用户组中,但是当我搜索 G2 组时,下一个循环我有用户 U2、U3。在第二个循环中,它也在更新第一组值。理想情况下,我的元素应该是 G1->U1,U2 和 G2-> U2,U3 但我的代码正在添加这样的元素。 G1->U2,U3 G2->U2,U3。我在这里做错了什么?请帮忙
【问题讨论】:
标签: java arrays arraylist core