Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How will you convert method to single line in java8

I am having following method which converts single line to map

And want to convert it to single line statement using java8

input pipe separated string e.g.: status:MYSTATUS|data1:value1

public Map<String, String> getMap(String attributeUpdate){
    Map<String, String> attr = new HashMap<>();
    if(StringUtils.isNotEmpty(attributeUpdate)){
        List<String> a = Arrays.asList(attributeUpdate.split("\\|"));
        for (String s : a) {
            String[] key_val = s.split(":");
            if(key_val.length == 2) {
                attr.put(key_val[0], key_val[1]);
            }
        }
    }
    return attr;
}
like image 416
swan Avatar asked Feb 02 '26 22:02

swan


1 Answers

Please try this following code. It works fine.

String s = new String("status:MYSTATUS|data1:value1");
Arrays.stream(s.split("\\|")).map(stringArray -> stringArray.split(":"))
        .filter(stringArray -> stringArray.length == 2)
        .collect(Collectors.toMap(stringArray ->stringArray[0], stringArray-> stringArray[1],(oldvalue,newvalue)->newvalue));

Thanks

like image 137
Sridhar Karuppusamy Avatar answered Feb 05 '26 12:02

Sridhar Karuppusamy



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!