我有一个List>如
[{TXNO=428, STATUS=NEW}, {TXNO=434, STATUS=NEW}, {TXNO=442, STATUS=NEW}]
我正在将对象重复为
for (Map<String, Object> map : details) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
logger.info(key+"="+value);
}
}
打印为
TXNO=428
STATUS=NEW
TXNO=434
STATUS=NEW
TXNO=442
STATUS=NEW
如何在列表中添加TXNO值?我的List对象最终应该是[428,434,442]
答案 0 :(得分:3)
List<String> TXNOList = new LinkedList<String>();
for (Map<String, Object> map : details) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
logger.info(key+"="+value);
if(key.equals("TXNO")) {
TXNO.add(value);
}
}
}
如果您需要整数列表,只需将TXNOList定义更改为Integer并将值转换为Integer:Integer.valueOf(value)
。
答案 1 :(得分:1)
如果你可以使用java 8,那么这是一个优雅的解决方案:
List<Object> txno = mapList.stream()
.map(map -> map.get("TXNO")) // get value by key
.filter(Objects::nonNull) // check if not null
.collect(Collectors.toList()); // collect to list
答案 2 :(得分:1)
你可以这样做: -
List<Object> TXList=new ArrayList<Object>();
for (Map<String, Object> map : details) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if(key.equals("TXNO"))
TXList.add(value);
}
}