当前位置: 首页 > 工具软件 > lambdaj > 使用案例 >

lambdaj 集合操作工具

储修谨
2023-12-01

依赖:

      <dependency>
           <groupId>com.googlecode.lambdaj</groupId>
           <artifactId>lambdaj</artifactId>
           <version>2.3.3</version>
       </dependency>

计算平均值:

    @Test
    public void testAvg() {
        ImmutableList<Integer> list = ImmutableList.of(1,2,3,4,10);
        Number avg = Lambda.avg(list);
        System.out.println(avg);

    }

统计每个元素出现的次数:

    @Test
    public void testCount() {
        ImmutableList<Integer> list = ImmutableList.of(1,2,3,4,10,1,2,3,4);
        Map<Object, Integer> count = Lambda.count(list);
        for(Map.Entry<Object,Integer> entry : count.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }

sort排序:

内部使用的 Collections.sort() 方法进行排序的。

    @Test
    public void testSort() {
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person(1051,"Tom","123"));
        list.add(new Person(1002,"Jack","123"));
        list.add(new Person(1021,"Ros","123"));
        list.add(new Person(1041,"Pink","123"));
        list.add(new Person(1071,"Jerrt","123"));

        List<Person> sortList = Lambda.sort(list, Lambda.on(Person.class).getId());
        for (Person person : sortList) {
            System.out.println(person);
        }
    }

joinFrom 连接元素

    @Test
    public void testJoinForm() {
        String idStr = Lambda.joinFrom(list).getName();
        String pwdStr = Lambda.joinFrom(list,"-").getPassword();

        System.out.println(idStr);
        System.out.println(pwdStr);
    }

selectMax,selectMin(最大/最小 对象)

    /**
     * 按照某个属性值 最大/最小 的对象
     */
    @Test
    public void testSelectMax() {
        //获取年龄最大的 person 对象
        Person maxIdPer = Lambda.selectMax(list, Lambda.on(Person.class).getId());

        //
        Person minIdPer = Lambda.selectMin(list, Lambda.on(Person.class).getId());

        System.out.println(maxIdPer);
        System.out.println(minIdPer);

    }

获取的是某个属性值最大或最小的对象实例

max、min 获取最大\最小的属性值

    @Test
    public void testMinMax() {
        int maxId = Lambda.max(list,Lambda.on(Person.class).getId());

        String minName = Lambda.min(list,Lambda.on(Person.class).getName());

        System.out.println(maxId);
        System.out.println(minName);
    }

获取的是集合中某个最大或最小的属性值

对集合中某一个属性进行求和运算:

    @Test
    public void testSum() {
        int sumId = Lambda.sum(list,Lambda.on(Person.class).getId());
        int sumFromId = Lambda.sumFrom(list).getId();

        System.out.println(sumId);
        System.out.println(sumFromId);
    }

对集合中某个属性值进行求和运算,可以使用 sum 或 sumFrom 函数。

抽取元素属性组成集合:

    @Test
    public void testExtract() {
        List<String> names = Lambda.extract(list, Lambda.on(Person.class).getName());
        for (String name : names) {
            System.out.println(name);
        }
    }

将集合中某一属性全部取出,单独组成一个集合。

 类似资料: