- public class Main {
- public static void main(String[] args) {
-
- //方法形参的个数是可以变化的
- //格式:属性类型...名字
- System.out.println(getSum(1,2,3,4,5,6,7,8));
- }
-
-
- //通过键值对对象来遍历;
-
- public static int getSum(int a,int...args){//可变参数;
- int sum=0;
- for(int i:args)
- {
- sum+=i;
- }
-
- return sum;
- }
-
-
- }
可变参数只能有一个数组,不能有两个数组;此外在形参列表中,
可变参数要写在最后;


ArrayListlist1=new ArrayList<>(); list1.add("milan"); list1.add("manunited"); list1.add("rmd"); list1.add("inter"); list1.stream().filter(name->name.startsWith("m")).filter(name->name.length()==3).forEach(name-> System.out.println(name));
获取Stream流的方法:根据集合特点有不同的方法,如上
- import java.util.*;
- import java.util.function.BiConsumer;
- import java.util.function.Consumer;
- import java.util.stream.Stream;
-
- public class Main {
- public static void main(String[] args) {
-
- //单列集合的获取比较简单;,使用stream方法获取流对象,调用方法即可
- ArrayList
list1=new ArrayList<>(); - Collections.addAll(list1,"inter","milan","FCB","RMD","MCI","MUN","LIV","CHE");
- //获取流
- Stream
ss=list1.stream(); - //遍历流对象并打印;
- ss.forEach(new Consumer
() { - @Override
- public void accept(String s) {
- System.out.println(s);
- }
- });
- //使用lambda简化
- list1.stream().forEach(name-> System.out.println(name));
- //使用终结方法打印流的数据
- list1.stream().filter(name->name.startsWith("m")).filter(name->name.length()==3).forEach(name-> System.out.println(name));
-
- //双列集合需要先获取单列集合,在操作;也可以使用entryset获取全部
- HashMap
hm=new HashMap<>(); - hm.put("aaa",111);
- hm.put("bbb",222);
- hm.put("ccc",333);
- hm.put("ddd",444);
-
- hm.keySet().stream().forEach(new Consumer
() { - @Override
- public void accept(String s) {
- System.out.println(s);
- }
- });
- hm.keySet().stream().forEach(name-> System.out.println(name));
- hm.entrySet().stream().forEach(name-> System.out.println(name));//同时获取键值集合
-
- //数组的流获取
- int[]arr={1,2,3,4,5,6,7,8};
- String[]arr1={"a","b","c","d","e"};
- //获取Stream流
- Arrays.stream(arr).forEach(s-> System.out.println(s));
-
- System.out.println("_____________________________");
- Arrays.stream(arr1).forEach(name-> System.out.println(name));
- }
- //通过键值对对象来遍历;
-
- //零散数据
-
- }
Stream中间方法

-
- import com.sun.management.GarbageCollectionNotificationInfo;
- import com.sun.source.tree.Tree;
-
- import java.util.*;
- import java.util.function.BiConsumer;
- import java.util.function.Consumer;
- import java.util.function.Predicate;
- import java.util.stream.Stream;
-
- public class Main {
- public static void main(String[] args) {
-
- //单列集合的获取比较简单;,使用stream方法获取流对象,调用方法即可
- ArrayList
list1=new ArrayList<>(); - Collections.addAll(list1,"inter","milan","FCB","RMD","MCI","MUN","LIV","CHE");
-
- list1.stream().filter(new Predicate
() { - @Override
- public boolean test(String s) {
- return s.startsWith("m");
- // return false;
- }
- }).forEach(new Consumer
() { - @Override
- public void accept(String s) {
- System.out.println(s);
- }
- });
- //stream流只能使用一次;最好一次使用完成。
- //修改stream流不会影响原集合;
- list1.stream().filter(s->s.startsWith("M")).forEach(s-> System.out.println(s));
- list1.stream().limit(5).forEach(s-> System.out.println(s));
- list1.stream().limit(5).skip(2).forEach(s-> System.out.println(s));
- //合并流
- Stream.concat(list1.stream(),list1.stream()).forEach(s-> System.out.println(s));
-
-
- }
- //通过键值对对象来遍历;
- //零散数据
- }
Stream流终结方法
