Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- public class Reduce {
- public static void main(String[] args) {
- Random rnd = new Random();
- List<Integer> input = new ArrayList<>();
- for (int i = 0; i < 5; i++) {
- input.add(rnd.nextInt(100));
- }
- Data result = input.stream().reduce(new Data('a', new ArrayList<>()),
- (data, num) -> {
- data.list.add("" + num + data.letter);
- data.letter = (char) (data.letter + 1);
- return data;
- },
- (data1, data2) -> data1);
- System.out.println(result.list);
- }
- }
- class ReduceImmutable {
- public static void main(String[] args) {
- Random rnd = new Random();
- List<Integer> input = new ArrayList<>();
- for (int i = 0; i < 5; i++) {
- input.add(rnd.nextInt(100));
- }
- Data result = input.stream().reduce(new Data('a', new ArrayList<>()),
- (data, num) -> {
- //consider class Data is immutable
- Data newAcc = new Data();
- List<String> newList = new ArrayList<>();
- newList.addAll(data.list);
- newList.add("" + num + data.letter);
- newAcc.letter = (char) (data.letter + 1);
- newAcc.list = newList;
- return newAcc;
- },
- (data1, data2) -> data1);
- System.out.println(result.list);
- }
- }
- class Data {
- char letter;
- List<String> list;
- Data() {}
- Data(char letter, List<String> list) {
- this.letter = letter;
- this.list = list;
- }
- }
Add Comment
Please, Sign In to add comment