- Java8新特性
- 函数式编程思想
- 操作集合:过滤、合并、聚合
Integer max = a1.max(Comparator.comparing(s -> s)).get();
System.out.println(max);
public class StreamDemo {
public static void main(String[] args) {
String[] str = {"aa", "bb", "cc", "dd"};
List<String> lists = Arrays.asList(str);
Stream<String> stream = lists.stream();
System.out.println(lists);
//当把stream流转为集合时候该流就已经被关闭,故后续在使用该流会报错说流已关闭
//1.filter方法:用于对集合做过滤处理
/* int count = 0;
for (String list : lists) {
if ("bb".equals(list))
count++;
//System.out.println("增强for遍历:"+list);
}
System.out.println(count);
final int[] count1 = {0};
lists.forEach(list -> {
//System.out.println("lambda遍历:" + list);
if ("bb".equals(list)){
count1[0]++;
}
});
System.out.println(count1[0]);
long l = stream.filter(list -> "bb".equals(list)).count();
System.out.println(l);*/
//2.map方法:用于对集合做增强处理
List<String> collect = stream.map(list -> list + "拼接").collect(Collectors.toList());
System.out.println(collect);
/* //3.flatMap方法:将多个stream合并为一个stream再进行操作
String[] str1 = {"11", "22", "33", "44"};
List<String> lists1 = Arrays.asList(str1);
Stream<List<String>> stream1 = Stream.of(lists, lists1);
//List<List<String>> collect2 = stream1.collect(Collectors.toList());//[[aa, bb, cc, dd], [11, 22, 33, 44]]
//System.out.println(collect2);
//合并stream流为一个流
Stream<String> stringStream = stream1.flatMap(sr -> sr.stream());
List<String> collect1 = stream1.flatMap(sr -> sr.stream()).collect(Collectors.toList());
System.out.println(collect1);*/
//4.Max和Min方法:通过stream找出比较出list内最大值和最小值
Integer[] a={4,6,2,7,8,3,1};
Stream<Integer> a1 = Stream.of(a);
Integer max = a1.max(Comparator.comparing(s -> s)).get();
System.out.println(max);
Integer min = a1.min(Comparator.comparing(s -> s)).get();
System.out.println(min);
}
}