利用google工具类实现对list集合分组
2016-05-09 00:00
507 查看
摘要: 有时候我们把数据从库里面查询出来后,又想分组,可以利用这个工具类,非常方便。
[code=plain] @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("男"); */ }
相关文章推荐
- go语言小项目之留言板
- django框架从零开始_008_页面元素 表单处理
- Golang-slice
- hdu3966 Aragorn's Story【树链剖分+线段树】
- 在ubuntu 上用Sublime text 3 搭建golang 环境
- Codeforces Round #258 (Div. 2) D. Count Good Substrings
- GO语言学习
- Google 的开源技术 protobuf 简介与例子
- ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot
- ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot
- ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot
- Django simple sample
- Codeforces 451D Count Good Substrings (组合数)
- 使用beego创建员工加班调休系统
- HDOJ(HDU) 2401 Baskets of Gold Coins(数列、)
- HDOJ(HDU) 2401 Baskets of Gold Coins(数列、)
- AlphaGo原理浅析
- beego完美结合hugo
- Django的学习笔记(三)(Django多对多关系模型)
- Django的学习笔记(二)(Django模板)