Google Guava 实战之List篇

Google Guava 实战之List篇

一、导入依赖

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0.1-jre</version>
        </dependency>

二、List

Lists.cartesianProduct:返回俩个集合的n元笛卡尔积

  @Test
    public void test1(){
        List<User> users = new ArrayList<>();
        users.add(new User("a", 20));
        users.add(new User("b", 21));
        users.add(new User("c", 22));

        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        /**
         * 1、cartesianProduct
         * Lists.cartesianProduct:通过从每个给定列表中依次选择一个元素,返回可以形成的所有可能列表;列表的“ n元笛卡尔积 ”。
         */
        List<List<Object>> cartesianProduct = Lists.cartesianProduct(users, list);
        System.out.println("Lists.cartesianProduct:===============cartesianProduct:" + cartesianProduct);
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class User{
        private String userName;
        private Integer age;
    }

输出结果

Lists.cartesianProduct:===============cartesianProduct:[[ListTest.User(userName=a, age=20), 1], [ListTest.User(userName=a, age=20), 2], [ListTest.User(userName=b, age=21), 1], [ListTest.User(userName=b, age=21), 2], [ListTest.User(userName=c, age=22), 1], [ListTest.User(userName=c, age=22), 2]]

Lists.reverse:返回指定列表的反向视图

 	@Test
    public void test1(){
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        /**
         * 	2、reverse(List<T> list)
         * 返回指定列表的反向视图。
         */
        List<Integer> reverse = Lists.reverse(list);
        System.out.println("Lists.reverse=============revers:" + reverse);
    }

输出结果

Lists.reverse=============revers:[2, 1]

Lists.partition:把List按指定大小分割

 	@Test
    public void test1(){
        List<User> users = new ArrayList<>();
        users.add(new User("a", 20));
        users.add(new User("b", 21));
        users.add(new User("c", 22));
        /**
         * 3、partition(List, int)
         * 把List按指定大小分割
         */
        List<List<User>> partition = Lists.partition(users, 2);
        System.out.println("Lists.partition:===========partition:" + partition);
    }

输出结果

Lists.partition:===========partition:[[ListTest.User(userName=a, age=20), ListTest.User(userName=b, age=21)], [ListTest.User(userName=c, age=22)]]

Lists.charactersOf(String string):返回指定字符串的视图作为不可变Character值列表

 	@Test
    public void test1(){
        /**
         * 5、Lists.charactersOf(String string)
         * 返回指定字符串的视图作为不可变Character值列表。
         */
        ImmutableList<Character> characters = Lists.charactersOf("张三在学guava");
        System.out.println("Lists.charactersOf(String string)=================="+characters);
    }

输出结果

Lists.charactersOf(String string)==================[,,,, g, u, a, v, a]

Lists.charactersOf(CharSequence sequence):返回指定字符串的视图作为不可变Character值列表

 	@Test
    public void test1(){

        /**
         * 6、Lists.charactersOf(CharSequence sequence)
         *返回指定CharSequence为的List<Character>视图sequence,以Unicode代码单元序列的形式查看 。
         */
        List<Character> characters1 = Lists.charactersOf(new StringBuffer("张三在学guava"));
        System.out.println("Lists.charactersOf(CharSequence sequence)=================="+characters1);
    }

输出结果

Lists.charactersOf(CharSequence sequence)==================[,,,, g, u, a, v, a]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值