import java.util.*;
//stream流基本概念
public class stream_1 {
public static void main(String[] args) {
Collection<String> c1=new ArrayList<>();
Collections.addAll(c1,"张三丰","张无忌","张某","周芷若");
System.out.println(c1);
//用集合的方式实现输出三个字的姓张的名字
List<String> list=new ArrayList<>();
//遍历c1集合
for(String name:c1){
//如果姓张则输出
if(name.startsWith("张")){
list.add(name);
}
}
System.out.println(list);
List<String> list2=new ArrayList<>();
for(String names:list){
//如果是三个字的则输出
if(names.length()==3){
list2.add(names);
}
}
System.out.println(list2);
//用stream流实现输出三个字姓张的名字
//stream支持链式连接
//stream()中的filter()方法的作用是过滤
c1.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(s-> System.out.print(s+"\t"));
System.out.println();
//stream另一种方式
c1.stream().filter(s->s.startsWith("张")&&s.length()==3).forEach(s-> System.out.print(s+"\t"));
}
}
class str{
public static void main(String[] args) {
//Collection集合获取stream流
Collection<String> co=new ArrayList<>();
Stream<String> s=co.stream();
//Map集合获取Stream流
Map<String,Integer> map=new HashMap();
//键流
Stream<String> key=map.keySet().stream();
//值流
Stream<Integer> value=map.values().stream();
//键值对流(拿整体)
Stream<Map.Entry<String,Integer>> kvstream=map.entrySet().stream();
//----------------数组获取Stream流-------------
String str[]={"张三丰","张无忌","周芷若"};
Stream<String> name=Arrays.stream(str);
Stream<String> names=Stream.of(str);
}
}