File size: 2,504 Bytes
0284885 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | package Stream_Termination_package;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.function.Consumer;
import java.util.function.IntFunction;
public class Stream_demo9 {
public static void main(String[] args) {
/*
void forEach (Consumer action) 遍历
long count () 统计
toArray () 收集流中的数据,放到数组中
*/
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "张无忌", "周芷若", "赵敏", "张强", "张三丰", "张翠由", "张良", "王二麻子", "谢广坤");
// void forEach (Consumer action) 遍历
// Consumer的泛型:表示流中数据的类型
// accept方法的形参s:依次表示流里面的每一个数据
// 方法体:对每一个数据的处理操作(打印)
list.stream().forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.print(s + " ");
}
});
System.out.println();
list.stream().forEach(s -> System.out.print(s + " "));
System.out.println();
// long count () 统计
long count = list.stream().count();
System.out.println(count);
// toArray () 收集流中的数据,放到数组中
Object[] arr1 = list.stream().toArray();
System.out.println(Arrays.toString(arr1));
// IntFunction的泛型:具体类型的数组
// apply的形参:流中数据的个数,要和数组的长度保持一致
// apply的返回值:具体类型的数组
// 方法体:就是创建数组
// toArray方法的参数的作用,负责创建一个指定类型的数组
// toArray方法的底层:会依次得到流里面的每一个数据,并把数据放到数组当中
// toArray方法的返回值:是一个装着流里面所有数据的数组
String[] arr2 = list.stream().toArray(new IntFunction<String[]>() {
@Override
public String[] apply(int value) {
return new String[value];
}
});
System.out.println(Arrays.toString(arr2));
String[] arr3 = list.stream().toArray(value -> new String[value]);
System.out.println(Arrays.toString(arr3));
}
}
|