数据结构:apache.commons.collections4.MultiValuedMap

package com.schwarzit.dmm.core.utils;

import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;

import java.util.AbstractMap;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class TestMultivaluedMap {
    public static void main(String[] args) {
        MultiValuedMap<String, String> multiValuedMap = new ArrayListValuedHashMap<>();
        multiValuedMap.put("fruits", "apple");
        multiValuedMap.put("fruits", "banana");
        multiValuedMap.put("vegetable", "tomato");
        multiValuedMap.put("vegetable", "carrot");
        multiValuedMap.put("vegetable", "pepper");

//        Collection<String> fruits = multiValuedMap.get("fruits");
//        fruits.forEach(System.out::println);

//        multiValuedMap.entries().forEach(System.out::println);

        Map<String, String> collect = multiValuedMap.asMap().entrySet().stream().map(
            entry -> {
                StringBuilder valuesBuilder = new StringBuilder();
                entry.getValue().forEach(value -> valuesBuilder.append(value).append("/"));
                String values = valuesBuilder.deleteCharAt(valuesBuilder.length() - 1).toString();
                return new AbstractMap.SimpleEntry<String, String>(entry.getKey(), values);
            }
        ).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

        collect.entrySet().forEach(entry -> System.out.println("key is : " + entry.getKey() + ", value is: " + entry.getValue()));

//        Map<String, Object> result = new HashMap<>();
//        Map<String, String> map = (Map) result;


//        Stream<AbstractMap.SimpleEntry<String, String>> simpleEntryStream = multiValuedMap.asMap().entrySet().stream().map(
//            entry -> {
//                StringBuilder valuesBuilder = new StringBuilder();
//                entry.getValue().forEach(value -> valuesBuilder.append(value).append("/"));
//                String values = valuesBuilder.deleteCharAt(valuesBuilder.length() - 1).toString();
//                return new AbstractMap.SimpleEntry<String, String>(entry.getKey(), values);
//            }
//        );

    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容