简体   繁体   中英

Iterate List<Map<String, Object>> and add the values of object to a list using Java

Im having a List> as

[{TXNO=428, STATUS=NEW}, {TXNO=434, STATUS=NEW}, {TXNO=442, STATUS=NEW}]

I'm iterating the object as

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);
            }
        }

It prints as

TXNO=428
STATUS=NEW
TXNO=434
STATUS=NEW
TXNO=442
STATUS=NEW

How can I add TXNO values in a list? My List object finally should be [428,434, 442]

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);
                }
            }
        }

If you need a Integer list just change the TXNOList definition to Integer and cast value to Integer: Integer.valueOf(value) .

If you can use java 8, then here's an elegant solution:

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

You can do this way :-

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);
        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM