Arraylist元素名称已存在,否则在java中创建新的元素名称

时间:2016-07-01 06:29:50

标签: java android arrays arraylist wrapper

我试图从arraylist值中获取字符串值。

但是在我的arraylist中,如果值已经存在,只需更新计数即可。否则需要创建一个新的。这里的值正在更新,但是如果名称与arraylist元素名称不匹配,如何创建新的元素?请告诉我,如何验证arraylist中已存在的元素(GlobalData.getCRole)。 在此代码中,arraylist名称为GlobalData.getrolecount

 GlobalData.getCRole = item.getRole_name();
                if (GlobalData.getrolecount.size() > 0) {

                     for (int i = 0; i < GlobalData.getrolecount.size(); i++) {
                        Role getrc = GlobalData.getrolecount.get(i);
                         Role getrcverify = new Role();
                         getrcverify.setRole_name(GlobalData.getCRole);

                         if (getrc.getRole_name().equalsIgnoreCase(GlobalData.getCRole)) {
                             String inccount = GlobalData.getrolecount.get(i).getCount();
                            int getcount = Integer.parseInt(inccount) + 1;
                            getrc.setCount(Integer.toString(getcount));
                        }
                    }
                } else {
                    Role getrc = new Role();
                    getrc.setRole_name(GlobalData.getCRole);
                    getrc.setCount("1");
                    GlobalData.getrolecount.add(getrc);
                }

2 个答案:

答案 0 :(得分:0)

我使用不同的数据结构。列表不是你想要的。您希望字符串的Map(可能是HashMap)为Count,或者字符串为Roles。这样你就可以进行O(1)搜索,看看角色是否已经存在,而不是列表的O(n)遍历,并检查角色是否存在是一个简单的检查,看看get是否返回null。

答案 1 :(得分:0)

添加到@ GabeSechan的答案,这里有一个可以帮助你的片段:

//let's say you store your data in a Map called myHashMap

String keyToMatch = "your_key_here";        // replace this line with whatever code you use to get your key
if(myHashMap.containsKey(keyToMatch))       // Check if your map already contains the key
{
    int val = myHashMap.get(keyToMatch);
    myHashMap.put(keyToMatch, val++);       // Can be shrunken to a single line
}
else
{
    myHashMap.put(keyToMatch, 1);           // If it doesn't exist in the map, add it (with count 1)
}

此代码可以更加缩小,因为Map<>是一个非常强大的工具。但我的编写方式与您的实现类似,因此您可以更好地理解它。

如果您需要进一步说明或帮助尝试初始化myHashMap,请与我们联系。