zoukankan      html  css  js  c++  java
  • Map比较

    1. List转换String

    2. List去除null

    3. List比较

    4. Map比较

    import com.google.common.base.Joiner;
    import com.google.common.base.Splitter;
    import com.google.common.collect.*;
    import org.junit.jupiter.api.BeforeAll;
    import org.junit.jupiter.api.Test;
    import org.junit.platform.commons.util.StringUtils;
    
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;
    
    import static org.junit.jupiter.api.Assertions.assertEquals;
    import static org.junit.jupiter.api.Assertions.assertFalse;
    import static org.junit.jupiter.api.Assertions.assertTrue;
    
    /**
     * Description:
     *
     * @author maduar maduar@163.com
     * @version 1.1.1 25/01/2019
     */
    public class JonerTest {
    
        private static String commaSign;
        private static String equalSign;
        private static String andSign;
    
        @BeforeAll
        public static void before() {
            commaSign = ",";
            equalSign = "=";
            andSign = "&";
        }
    
        @Test
        public void test() {
            // init
            List<String> stringList = Lists.newArrayList("my", "cococ", null);
            // not null
            List<String> stringList2 = stringList.stream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
    
    
            String result = "my,cococ";
    
            String t2 = Joiner
                    .on(commaSign)
                    .skipNulls()
                    .join(stringList);
    
            List<String> s3 = Lists.newArrayList(Splitter.on(",").split(t2));
    
            // list比较
            boolean sign = Iterables.elementsEqual(stringList2, s3);
    
            assertEquals(result, t2);
            assertTrue(sign);
        }
    
        @Test
        public void test2() {
            Map<String, String> map = ImmutableMap.of("a", "10", "b", "88");
            Map<String, String> map5 = ImmutableMap.of("a", "10");
            String result = "a=10&b=88";
    
            // map to string
            String t2 = Joiner
                    .on(andSign)
                    .withKeyValueSeparator(equalSign)
                    .join(map);
    
            // 字符串分割
            Map<String, String> map2 = Splitter
                    .on(andSign)
                    .withKeyValueSeparator(equalSign)
                    .split(t2);
    
            // map比较
            boolean zero = Maps.difference(map5, map2).areEqual();
            boolean zero2 = Maps.difference(map, map2).areEqual();
    
            assertFalse(zero);
            assertTrue(zero2);
            assertEquals(result, t2);
        }
    }
    

      

  • 相关阅读:
    Groovy 设计模式 -- null对象模式
    Groovy 设计模式 -- 借贷
    Groovy 设计模式 -- 抽象工厂 模式
    Groovy 设计模式 -- Strategy 模式
    Groovy 设计模式 -- proxy & delegate
    Groovy 类名称赋值为变量使用(newInstance & new)
    yaml
    REST POST PUT差别
    Continuous Design
    通配符 Globbing赏析
  • 原文地址:https://www.cnblogs.com/maduar/p/10322243.html
Copyright © 2011-2022 走看看