for (ExcelImportViewModel inventory : iv.inventoryList) { stringList.add(inventory.name + inventory.barCode); System.out.println(inventory.name); }根据不同的name生成不同的列表
时间: 2024-02-14 12:09:03 浏览: 74
Free Spire.Barcode for Java版本: 5.1.1
你可以使用 Map 来实现根据不同的 name 生成不同的列表。具体实现方法如下所示:
```java
Map<String, List<String>> nameToListMap = new HashMap<>();
for (ExcelImportViewModel inventory : iv.inventoryList) {
String name = inventory.name;
String barCode = inventory.barCode;
String key = name.trim(); // 去掉 name 字段的空格
List<String> list = nameToListMap.getOrDefault(key, new ArrayList<>());
list.add(barCode);
nameToListMap.put(key, list);
}
// 输出不同 name 对应的列表
for (Map.Entry<String, List<String>> entry : nameToListMap.entrySet()) {
String name = entry.getKey();
List<String> list = entry.getValue();
System.out.println("Name: " + name);
for (String barCode : list) {
System.out.println("- " + barCode);
}
}
```
上述代码中,我们先创建了一个空的 Map,用于存储不同 name 对应的列表。然后遍历 `iv.inventoryList` 中的元素,对于每个元素,我们提取出其 name 和 barCode 字段,并将 name 字段作为 Map 的 key,将 barCode 字段添加到对应的列表中。最后,我们遍历 Map 中的每个元素,输出不同 name 对应的列表。
需要注意的是,上述代码中用到了 `getOrDefault` 方法来获取 Map 中对应的列表。这个方法会返回指定 key 对应的值,如果该 key 不存在,则返回默认值(这里是一个空的列表)。
阅读全文