'What to do if i have 1000 column in this given example in java 8
Aftere load data from csv file then list look like below and first column unique id and rest 999 have data value. I want to sum duplicate records based on unique id. How to simplify the code because I have to write 999 array?
Below code for one unique id and 2 data values (this code ok for 2 column):
Integer[] dataPeriod = new Integer[]{101, 2, 4};
Integer[] dataPeriod1 = new Integer[]{102, 3, 5};
Integer[] dataPeriod2 = new Integer[]{101, 4, 6};
Integer[] dataPeriod3 = new Integer[]{102, 5, 7};
Integer[] dataPeriod4 = new Integer[]{102, 7, 9};
Integer[][] data = {dataPeriod, dataPeriod1, dataPeriod2, dataPeriod3, dataPeriod4};
Collection<Integer[]> value = Arrays.stream(data).collect(Collectors.toMap(ints -> ints[0],
Function.identity(), (a1, a2) -> {
a1[1] += a2[1];
a1[2] += a2[2];
return a1;
})).values();
what if list like below:
Integer[] dataPeriod = new Integer[]{101, 2, 4,..................,1000th};
Integer[] dataPeriod1 = new Integer[]{102, 3, 5,..................,1000th};
Integer[] dataPeriod2 = new Integer[]{101, 4, 6,..................,1000th};
Integer[] dataPeriod3 = new Integer[]{102, 5, 7,..................,1000th};
Integer[] dataPeriod4 = new Integer[]{102, 7, 9,..................,1000th};
Integer[][] data = {dataPeriod, dataPeriod1, dataPeriod2, dataPeriod3, dataPeriod4,..................,dataPeriod999th};
Collection<Integer[]> value = Arrays.stream(data).collect(Collectors.toMap(ints -> ints[0],
Function.identity(), (a1, a2) -> {
a1[1] += a2[1];
a1[2] += a2[2];
..... += ....;
..... += ....;
..... += ....;
..... += ....;
..... += ....;
a1[999] += a2[999];
[simplify the code because I have to write 999 array?]
return a1;
})).values();
Expected OP:
[0] = {101, 6, 10}
[1] = {102, 15, 21}
Solution 1:[1]
You can use Java existing summing reduce method:
Integer sum = integers.stream()
.reduce(0, Integer::sum);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Orr Benyamini |
