使用Guava Collections2提供的transform批量转换

2022-12-15 14:34:51 浏览数 (1)

使用案例一:

 实际开发了,为了快速查询,我们会把日期以Long类型的方式存储到数据库中,比如20000000000000L,但显示的时候,要完整的日期,即yyyy-MM-dd的格式显示。

这个时候,我们就可以使用Collections2.transform方法处理类似的情况。

HashSet<Long> set = Sets.newHashSet();

        set.add(20000000000000L);

        set.add(30000000000000L);

        set.add(40000000000000L);

        Collection<String> result2 = Collections2.transform(set, input -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(input).toString());

        result2.forEach(System.out::println);

输出

2603-10-11 19:33:20 3237-07-20 07:06:40 2920-08-30 13:20:00

使用案例二:

比如我们想从list中获取对象id:

代码语言:javascript复制
testCollectionUtils() {
    List<WqContractCourse> courseList = Lists.();
    WqContractCourse c1 = WqContractCourse();
    c1.setId();
    WqContractCourse c2 = WqContractCourse();
    c2.setId();
    WqContractCourse c3 = WqContractCourse();
    c3.setId();
    WqContractCourse c4 = WqContractCourse();
    c4.setId();
    courseList.addAll(Lists.<WqContractCourse>(c1, c2, c3, c4));

    Collection<Integer> courseIds = Collections2.(courseList, Function<WqContractCourse, Integer>() {
        Integer apply(WqContractCourse wqContractCourse) {
            wqContractCourse.getId();
        }
    });
    .info(, JSONObject.(courseIds));


    List<Integer> courseIds2 = Lists.();

    Collection<WqContractCourse> deleteCourseList = Collections2.(courseList, Predicate<WqContractCourse>() {
        apply(WqContractCourse wqContractCourse) {
            (!.contains(wqContractCourse.getId())) {
                .info(  wqContractCourse.getId());
                ;
            }
            ;
        }
    });
    .info(, LogUtil.(Lists.(deleteCourseList)));
}
css

0 人点赞