java 如何将字符串从ArrayList〈>()解析为Map〈String,String>

vmpqdwk3  于 2023-01-19  发布在  Java
关注(0)|答案(2)|浏览(162)

我有一个方法,它接受一个过滤器参数,这个参数是一个字符串的ArrayList〈〉(),我需要在“:“上拆分这些字符串,并将其放入一个map中。

List<String> filtersQuery = new ArrayList<>();
        filtersQuery.add("brand:nike,adidas");
        filtersQuery.add("catagory:running");

并且希望Map的输出为:

brand=nike,adidas
catagory=running

我目前正在尝试使用stream()。我是Java新手,在正确解析它方面遇到了问题。

pkln4tw6

pkln4tw61#

List<String> filtersQuery = new ArrayList<>();
        filtersQuery.add("brand:nike,adidas");
        filtersQuery.add("category:running");

Map<String, String> filtersMap = filtersQuery
                .stream()
                .map(k -> k.split(":"))
                .collect(Collectors.toMap(a -> a[0],
                        a -> a[1]));

这比@cheng gen answer给予更好的性能

kknvjkwl

kknvjkwl2#

List<String> filtersQuery = new ArrayList<>();
        filtersQuery.add("brand:nike,adidas");
        filtersQuery.add("category:running");

        Map<String, String> filtersMap = filtersQuery
                .stream()
                .collect(Collectors.toMap(k -> k.split(":")[0],
                        v -> v.split(":")[1]));

        System.out.println(filtersMap);

它起作用了。

相关问题