Guava Lists工具类

简介: Guava Lists工具类

01 概述

GuavaGoogle 开源的一个 Java 工具库,里面有很多工具类,本文要讲的是里面的Lists工具类。

注意,使用Guava工具类库,必须先添加依赖:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>28.0</version>
</dependency>

02 Lists工具类

从下图可以看到Lists工具类有很多种方法:

下面举几个比较典型的操作演示下:

① 使用一行代码就能创建集合了,如下

ArrayList<Student> students = Lists.newArrayList(
                new Student("张三", 33),
                new Student("李四", 40),
                new Student("王五", 23),
                new Student("赵六", 55));

② 集合间转换(Sets也是仿照Lists的),如下

HashSet<String> strHashSet = Sets.newHashSet("1", "2", "3");
ArrayList<String> strList = Lists.newArrayList(strHashSet);

③ 集合分页(虽然stream流也能做到,也看下吧),如下

ArrayList<Student> students = Lists.newArrayList(
               new Student("张三", 33),
               new Student("李四", 40),
               new Student("王五", 23),
               new Student("赵六", 55));
// 每页两条
List<List<Student>> partionStudent = Lists.partition(students, 2);

④ dto转vo时用到,如下

List<StudentVo> studentVoList = Lists.transform(studentList, new Function<Student, StudentVo>() {
    @Override
    public StudentVo apply(Student student) {
        StudentVo s = new StudentVo();
        try {
            BeanUtils.copyProperties(s, student);
        } catch (Exception e) {
        }
        s.setStudent_id(student.getId());
        s.setStudent_no(student.getStuNo());
        return s;
    }
});

03 文末

本文就举Lists用法的几个典型场景例子,不过这工具类也是有不完善之处的(例如:transform方法),各位童鞋按需使用吧。

目录
相关文章
|
12月前
|
存储 设计模式 缓存
Java源码分析:Guava之不可变集合ImmutableMap的源码分析
Java源码分析:Guava之不可变集合ImmutableMap的源码分析
59 0
|
6月前
|
缓存 安全 Java
Google guava工具类的介绍和使用
Google guava工具类的介绍和使用
208 1
|
存储 缓存 Java
Guava中这些Map的骚操作,让我的代码量减少了50%
Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些API一方面可以简化我们代码,使代码更为优雅,另一方面它补充了很多jdk中没有的功能,能让我们开发中更为高效。
185 0
|
安全 Java Maven
Guava 如何让 Map 不可变之 ImmutableMap
Guava 如何让 Map 不可变之 ImmutableMap
401 0
Guava 如何让 Map 不可变之 ImmutableMap
|
Java API
Guava - Maps.newHashMap 和 new HashMap 区别
Guava - Maps.newHashMap 和 new HashMap 区别
824 0
|
Java
Guava-Objects使用
Java中的Object提供了很多方法供所有的类使用,特别是toString、hashCode、equals、getClass等方法,在日常开发中作用很大,Guava中包含Objects类,其提供了很多更为强大的方法。
128 0
guava学习:guava集合类型-table
最近学习了下guava的使用,这里简单记录下一些常用并且使用的工具类把。 看到table的使用时候真的是眼前一亮,之前的代码中写过很多的Map 这种格式的代码,这种阅读起来非常的不友好,甚至都不知道map中的key到底是什么还要联系上下文联想才可以,而table类型的出现彻底解决掉了这个麻烦。
1540 0
|
存储
guava学习:guava集合类型-Bimap
学习guava让我惊喜的第二个接口就是:Bimap BiMap是一种特殊的映射其保持映射,同时确保没有重复的值是存在于该映射和一个值可以安全地用于获取键背面的倒数映射。 最近开发过程中,经常会有这种根据key找value或者根据value找key 的功能,之前都是将值存储到枚举或者map中,然后通过反转的写法来实现的,直到发现了Bimap,才发现原来还有这么简便的方式。
1231 0
|
Java Apache API
Bag集合工具类(apache-commons-collections3.2工具包)在java中的使用
Bag集合工具类(apache-commons-collections3.2工具包)在java中的使用 Bag 是在 org.apache.commons.collections 包中定义的接口 ,也是集合的一种扩充工具类,当然结合用JDK中的map类进行相应的逻辑处理,也能实现Bag类的功能,但apache推出来肯定有它的原因和用处,知道有这么一个类了解它大概的用法,开发的时候真遇到这种情况,知道有这么个工具在你身边等着你用呢。
2772 0