相关疑难解决方法(0)

在java 8中按多个字段名分组

我找到了通过POJO中的某个字段名称对对象进行分组的代码.以下是代码:

public class Temp {

    static class Person {

        private String name;
        private int age;
        private long salary;

        Person(String name, int age, long salary) {

            this.name = name;
            this.age = age;
            this.salary = salary;
        }

        @Override
        public String toString() {
            return String.format("Person{name='%s', age=%d, salary=%d}", name, age, salary);
        }
    }

    public static void main(String[] args) {
        Stream<Person> people = Stream.of(new Person("Paul", 24, 20000),
                new Person("Mark", 30, 30000),
                new Person("Will", 28, 28000),
                new Person("William", 28, 28000));
        Map<Integer, List<Person>> peopleByAge;
        peopleByAge = people …
Run Code Online (Sandbox Code Playgroud)

java java-8

66
推荐指数
6
解决办法
9万
查看次数

JAVA中列表上的聚合函数

我有一个Java对象列表,我需要减少它应用聚合函数,如通过数据库选择.

注意:数据是从多个数据库和服务调用计算的.我希望有数千行,每行总是会有相同数量的"单元格".此数量在执行之间变化.

样品:

假设我的数据ListObject[3](List<Object[]>)表示,我的数据可能是:

[{"A", "X", 1},
{"A", "Y", 5},
{"B", "X", 1},
{"B", "X", 2}]
Run Code Online (Sandbox Code Playgroud)

样本1:

SUM索引2,按索引0和1分组

[{"A", "X", 1},
{"A", "Y", 5},
{"B", "X", 3}]
Run Code Online (Sandbox Code Playgroud)

样本2:

MAX超过索引2,按索引0分组

[{"A", "Y", 5},
{"B", "X", 2}]
Run Code Online (Sandbox Code Playgroud)

有人知道一些可以在Java中模拟这种行为的框架或api吗?

我的第一个选择是在NO-SQL数据库(如Couchbase)中插入所有数据,然后应用Map-Reduce,最后得到结果.但是这个解决方案有很大的开销.

我的第二个选择是嵌入一个Groovy脚本,但它也有很大的开销.

java database mapreduce data-processing

3
推荐指数
1
解决办法
6577
查看次数

标签 统计

java ×2

data-processing ×1

database ×1

java-8 ×1

mapreduce ×1