文档章节

利用google工具类实现对list集合分组

MATT0614
 MATT0614
发布于 2016/05/09 19:50
字数 333
阅读 364
收藏 17
 @org.junit.Test
    public void testTest6() {
        Person p1 = new Person("a",10,"男","china");
        Person p2 = new Person("b",11,"女","japan");
        Person p3 = new Person("c",12,"男","japan");
        Person p4 = new Person("d",14,"男","USA");
        Person p5 = new Person("e",14,"女","china");
        List<Person> persons = new ArrayList<>();
        persons.add(p1);
        persons.add(p2);
        persons.add(p3);
        persons.add(p4);
        persons.add(p5);
        ImmutableSet digits = ImmutableSet.of(persons.toArray());
        Function<Person, String> sex = new Function<Person, String>() {
            @Override
            public String apply(Person person) {
                return person.getSex();
            }
        };
        ImmutableListMultimap<String, Person> sexList = Multimaps.index(digits, sex);

        ImmutableListMultimap ageList = Multimaps.index(digits, new Function<Person, Integer>() {
            @Override
            public Integer apply(Person person) {
                return person.getAge();
            }
        });

        ImmutableListMultimap countryList = Multimaps.index(digits, new Function<Person, String>() {
            @Override
            public String apply(Person person) {
                return person.getContry();
            }
        });
        System.out.println("按性别分组 = " + sexList);
        System.out.println("按年龄分组 = " + ageList);
        System.out.println("按国家分组 = " + countryList);

        /** 结果
         * 按性别分组 = {男=[Person@44d03877, Person@215750e4, Person@6b7fb9d5], 女=[Person@422b2fec, Person@e818616]}
         * 按年龄分组 = {10=[Person@44d03877], 11=[Person@422b2fec], 12=[Person@215750e4], 14=[Person@6b7fb9d5, Person@e818616]}
         * 按国家分组 = {china=[Person@44d03877, Person@e818616], japan=[Person@422b2fec, Person@215750e4], USA=[Person@6b7fb9d5]}
         */
        //求性别为男的集合
        System.out.println("sexList = " + sexList.get("男"));
        //求年龄为14岁的集合
        System.out.println("ageList = " + ageList.get(14));
        //求国籍日本的集合
        System.out.println("countryList = " + countryList.get("japan"));
        /**
         * 结果
         * sexList = [Person@e818616, Person@789caeb2, Person@769165fa]
         * ageList = [Person@769165fa, Person@43be3ce6]
         * countryList = [Person@598a15ca, Person@789caeb2]
         * 以上结果就是根据返回的map得到的集合数据。
         * 可以把结果用List<Person> 保存。
         * List<Person> personMan = sexList.get("男");
         */
    }

 

© 著作权归作者所有

共有 人打赏支持
MATT0614
粉丝 6
博文 34
码字总数 9510
作品 0
银川
程序员
Guava学习笔记:Google Guava 类库简介

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这......

长平狐
2013/06/17
556
0
【java代码之美】---guava之Immutable(不可变)集合

Immutable(不可变)集合 一、概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开。Collections是jdk提供的一个工具类。 Guava中不可变对象和C...

雨点的名字
08/02
0
0
Google Guava 类库简介(1)

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这......

十二缸帕萨特
2015/10/07
31
0
java8 快速实现List转map 、分组、过滤等操作

  利用java8新特性,可以用简洁高效的代码来实现一些数据处理。 定义1个Apple对象: 添加一些测试数据: 1、分组 List里面的对象元素,以某个属性来分组,例如,以id分组,将id相同的放在一...

rechardchensir
08/25
0
0
使用 Google Guava 美化你的 Java 代码:1~4

1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMPORTS 编写漂亮代码 写在前面: 以前在一个项目中用到过guava,当时匆匆用,也没细研究,今天偶然在occhina看到这个系列教程的翻译,感觉不错,介...

大数据之路
2013/10/28
0
7

没有更多内容

加载失败,请刷新页面

加载更多

给MySQL授权远程访问

putty登录服务器; 登录MySQL: mysql -u root -p 新建远程用户: CREATE USER 'myusername' IDENTIFIED BY 'mypassword'; 授权: grant all on *.* to john@'101.102.103.104' identified by......

sweethome
57分钟前
0
0
在t-io老巢造谣,不过有造谣的就会有反造谣的!

只发当事人的截图,不发表评论,以免有引导嫌疑 PS: 截图是由不同的人发过来的 本人已经不在此微信群 图3:有造谣的,就有反造谣的 图4是2018-09-23的t-io官方群的一个发言小统计,有助于让...

talent-tan
今天
99
0
heartbeat 资源

drbd+apache+heartbeat : http://blog.51cto.com/11838039/1827901 heartbeat双机热备的架设 : http://blog.51cto.com/11838039/1827560 对heaetbeat的深一步认识 : http://blog.51cto.co......

寰宇01
今天
4
0
Spring 转换 model 为 json 时增加属性

缘起 目前的项目中有个需求是在附件对象转换成 json 时增加个 url 属性,以前的方式是在返回附件对象或列表时候做一次统一处理,这次想看看 spring 或者 jackson fasterxml 是否自带类似功能...

郁也风
今天
4
0
10大PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的 10个开源的Php比特币项目,将有助于你了解在自己的应用中 如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方...

汇智网教程
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部