【发布时间】:2018-12-22 23:00:24
【问题描述】:
我的输入中有一个总共 13 个 HashMap 的列表。每个 HashMap 只有 2 个 Keys“fieldName”和“accessibilityType”以及对应的值:
"fieldAccessibility": [
{
"fieldName": "firstName",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "lastName",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "avatarUrl",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "username",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "birthDate",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "phoneNumbers",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "email",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "language",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "externalId",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "externalCode",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "punchBadgeId",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "minor",
"accessibilityType": "EDITABLE"
},
{
"fieldName": "seniorityDate",
"accessibilityType": "EDITABLE"
}
]
我正在尝试遍历此并将“accessibilityType”的值更改为“READ”,其中“fieldName”为“birthDate”。有人可以说一下有效的方法吗?到目前为止,这是我尝试读取和打印每个键值对的尝试:
final List<HashMap<String, String>> list = some code to get the input;
for (HashMap<String, String> m : list)
{
for (HashMap.Entry<String, String> e : m.entrySet())
{
String key = e.getKey();
String value = e.getValue();
System.out.println("SEE HERE TEST " + key + " = " + value);
}}
【问题讨论】:
-
为什么要使用 HashMap 列表而不是更简单的 POJO 列表?我想知道您的问题是否实际上是 XY Problem 问题,您的整个方法可能不正确。
-
POJO:普通的旧 Java 对象,创建一个具有两个字段的 FieldAccessibility 类,一个文件名字符串和一个可编辑的布尔值。使用 JSON 库来解析文件并帮助创建一个填充此类型对象的
List<FieldAccessibility>。 -
@feelingunwelcome 这怎么是上述的骗子?
-
@feelingunwelcome 在 cmets...,而不是在帖子本身。另外,这与“我试图遍历对象数组以返回匹配的索引”的副本有何不同?
-
我不知道您为什么不只使用包含
{{"firstName", "editable"}, ...}的单个地图。额外的间接级别什么也没增加。
标签: java arrays list hashmap java-stream