import java.util.ArrayList;
public class StreamDemo1 {
public static void main(String[] args) {
ArrayList<String> list1=new ArrayList<>();
list1.add("小仙女");
list1.add("怪怪");
list1.add("小怪兽");
list1.add("小青蛙");
list1.add("小怪");
list1.stream().filter(name->name.startsWith("小")).filter(name->name.length()==2).forEach(name-> System.out.println(name));
/*//把小开头的元素存储到新集合里面;
ArrayList<String> list2=new ArrayList<>();
for(String name:list1){
if(name.startsWith("小")){
//startsWith()方法一般用于检测某请求字符串是否以指定的前缀开始的。
list2.add(name);
}
}
//System.out.println(list2);
//把小开头,长度2存入集合
ArrayList<String> list3=new ArrayList<>();
for(String name:list2){
if(name.length()==2){
//startsWith()方法一般用于检测某请求字符串是否以指定的前缀开始的。
list3.add(name);
}
}
//System.out.println(list3);
for (String name : list3) {
System.out.println(name);
}
*/
}
}
Stream流:结合Lambda表达式,简化集合数组的操作;
使用步骤:
- 得到一条stream流,把数据放上去
- 利用各种API进行操作,过滤
1.单列集合获取stream流;
import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Consumer;
import java.util.stream.Stream;
public class StreamDemo2 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
Collections.addAll(list,"a","b","c","d","e");
/*Stream<String> stream1=list.stream();
stream1.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});*/
list.stream().forEach(s-> System.out.println(s));
}
}
2.双列集合获取stream流
import java.util.HashMap;
public class StreamDemo3 {
public static void main(String[] args) {
//1创建双列集合
HashMap<String,Integer> hm=new HashMap<>();
//2添加数据
hm.put("aaa",111);
hm.put("bbb",222);
hm.put("ccc",333);
hm.put("ddd",444);
//3获取stream流;
//hm.keySet().stream().forEach(s-> System.out.println(s));
//得到所有的键;
//第二种获取stream流
hm.entrySet().stream().forEach(s-> System.out.println(s));
}
}
注意:用keySet(),entrySet()中转一下;
3.数组
import java.util.Arrays;
public class StreamDemo4 {
public static void main(String[] args) {
//创建数组
int[] arr={1,2,3,4,5,6,7,8,9};
//获取流
Arrays.stream(arr).forEach(s-> System.out.println(s));
}
}
4.同种同类型的零散数据
import java.util.stream.Stream;
public class StreamDemo5 {
public static void main(String[] args) {
Stream.of(1,2,3,4,5).forEach(s-> System.out.println(s));
Stream.of("a","b","c").forEach(s-> System.out.println(s));
}
}
记住不能混用用