我有一个列表,通过循环填充要列出的值,如下所示。
List<String> labelGroupDataValue = null;
if (labelGroupData.size() != 0) {
for (HashMap<String, List<String>> LabelMap : labelGroupData) {
for (Map.Entry<String, List<String>> labelGroupDataEntry : LabelMap.entrySet()) {
if (labelGroupDataEntry.getKey() != null) {
String keyvalue = labelGroupDataEntry.getKey();
if (keyvalue.contains(key)) {
labelGroupDataValue = labelGroupDataEntry.getValue();
CheckIsCustomizings(labelGroupDataValue);
}
}
}
}
}
我面临的问题是labelGroupDataValue包含最后一个循环的数据。
在我做错的地方,你能否在这方面帮助我。
IsCustomizings代码:
private void CheckIsCustomizings(List&gt; value){ //循环遍历列表以检查是否存在Customizings syncGroup for(int j = 0; j&lt; value.size(); j ++){
if (value.get(j).equals("SALESDOCS")) {
value.set(j, "SALES_DOCUMENTS");
}
if (value.get(j).equalsIgnoreCase("TRADEASSETS")) {
value.set(j, "TRADE_ASSETS");
}
if (value.get(j).equalsIgnoreCase("PROMOTIONSCAMPAIGNS")) {
value.set(j, "PROMOTIONS_CAMPAIGNS");
}
String checkName = "CUSTOMIZINGS";
if (value.get(j).toLowerCase().contains(checkName.toLowerCase())) {
IsCustomizingPresent = true;
break;
}
}
// If Customizings syncGroup is not present, add the same to List for displaying to the user
if (!IsCustomizingPresent) {
value.add("CUSTOMIZING");
}
}
答案 0 :(得分:1)
以下是如何正确添加到现有列表:
List<String> labelGroupDataValue = new ArrayList<>();
if (labelGroupData.size() != 0) {
... //omissis
labelGroupDataValue.addAll(labelGroupDataEntry.getValue());
CheckIsCustomizings(labelGroupDataValue);
...
}
其余代码的正确性取决于您。
答案 1 :(得分:0)
你需要在forloop中初始化“labelGroupDataValue”, 现在发生的事情是,只有一个内存被分配给列表,每次在循环中被覆盖,因此只剩下最后一个值。
如果有帮助,请尝试以下代码
List<String> labelGroupDataValue = null;
if (labelGroupData.size() != 0) {
for (HashMap<String, List<String>> LabelMap : labelGroupData) {
for (Map.Entry<String, List<String>> labelGroupDataEntry : LabelMap.entrySet()) {
if (labelGroupDataEntry.getKey() != null) {
String keyvalue = labelGroupDataEntry.getKey();
labelGroupDataValue = new ArrayList<>();
if (keyvalue.contains(key)) {
labelGroupDataValue = labelGroupDataEntry.getValue();
CheckIsCustomizings(labelGroupDataValue);
}
}
}
}
}