代码如下:
package StreamTest;import java.util.ArrayList;public class StreamDemo02 {public static void main(String[] args){ArrayList<String> list = new ArrayList<String>();list.add("Tom");list.add("Bom");list.add("jack");list.add("张无忌");list.add("张敏");list.add("张曼玉");//需求1:把list集合中以张开头的元素在控制台输出// list.stream().filter((String s)->{return s.startsWith("张");}).forEach(System.out::println);list.stream().filter(s->s.startsWith("张")).forEach(System.out::println);System.out.println("--------------------------");//需求2:把list集合中长度为3的元素在控制台输出list.stream().filter(s->s.length()==3).forEach(System.out::println);System.out.println("--------------------------");//需求3:把list集合中以张开头的,长度为3的元素在控制台输出list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(System.out::println);}
}
代码如下:
package StreamTest;import java.util.ArrayList;public class StreamDemo03 {public static void main(String[] args){ArrayList<String> list = new ArrayList<String>();list.add("Tom");list.add("Bom");list.add("jack");list.add("张无忌");list.add("张敏");list.add("张曼玉");//需求1:取前3个数据在控制台输出list.stream().limit(3).forEach(System.out::println);System.out.println("-----------------------------");//需求2:跳过3个元素,把剩下的元素在控制台输出list.stream().skip(3).forEach(System.out::println);System.out.println("-------------------------------");//需求3:跳过2个元素,把剩下的元素中前2个在控制台输出list.stream().skip(2).limit(2).forEach(System.out::println);}
}
代码如下:
package StreamTest;import java.util.ArrayList;
import java.util.stream.Stream;public class StreamDemo04 {public static void main(String[] args){ArrayList<String> list = new ArrayList<String>();list.add("Tom");list.add("Bom");list.add("jack");list.add("张无忌");list.add("张敏");list.add("张曼玉");//需求1:取前4个数据组成一个流Stream<String> s1 = list.stream().limit(4);//需求2:跳过2个数据组成一个流Stream<String> s2 = list.stream().skip(2);//需求3:合并需求1和需求2得到的流,并把结果在控制台输出Stream.concat(s1,s2).forEach(System.out::println);}
}
package StreamTest;import java.util.ArrayList;
import java.util.stream.Stream;public class StreamDemo04 {public static void main(String[] args){ArrayList<String> list = new ArrayList<String>();list.add("Tom");list.add("Bom");list.add("jack");list.add("张无忌");list.add("张敏");list.add("张曼玉");//需求1:取前4个数据组成一个流Stream<String> s1 = list.stream().limit(4);//需求2:跳过2个数据组成一个流Stream<String> s2 = list.stream().skip(2);//需求4:合并需求1和需求2得到的流,并把结果在控制台输出,要求字符串元素不能重复Stream.concat(s1,s2).distinct().forEach(System.out::println);}
}
代码如下:
package StreamTest;import java.lang.reflect.Array;
import java.util.ArrayList;public class StreamDemo05 {public static void main(String[] args){ArrayList<String> list = new ArrayList<String>();list.add("linqinxia");list.add("baobo");list.add("jack");list.add("zhangmanyu");list.add("tangbohu");list.add("mike");//需求1:按照字母顺序把数据在控制台输出list.stream().sorted().forEach(System.out::println);System.out.println("----------------------------------");//需求2:按照字符串长度把数据在控制台输出list.stream().sorted((s1,s2)->{int num = s1.length()-s2.length();int num1 = num==0?s1.compareTo(s2):num;return num1;}).forEach(System.out::println);}
}
代码如下:
package StreamTest;import java.util.ArrayList;public class StreamDemo06 {public static void main(String[] args){ArrayList<String> list = new ArrayList<String>();list.add("10");list.add("20");list.add("30");list.add("40");list.add("50");// list.stream().map(s->Integer.parseInt(s)).forEach(System.out::println);list.stream().map(Integer::parseInt).forEach(System.out::println);System.out.println("--------------------------");list.stream().mapToInt(Integer::parseInt).forEach(System.out::println);//int sum()返回此流元素的总和,该方法只在IntStreamint result = list.stream().mapToInt(Integer::parseInt).sum();System.out.println(result);}
}