forEach 循环遍历在jdk1.8新特性下的使用

常规情况下我们基本都是这么写

List<Integer> numbers = new ArrayList<>();
 
//no.1
for(Integer number : numbers){
     
    System.out.println(number);
}
 
//no.2
for(int index=0,len=numbers.size();index<len;index++){
     
    System.out.println(numbers.get(index));
}

使用jdk1.8后,可以这么写

//no.1
numbers.forEach((Integer integer) -> {
     
    System.out.println(integer);
});
 
//no.2
numbers.forEach(integer -> {
     
    System.out.println(integer);
});
 
//no.3
numbers.forEach(integer -> System.out.println(integer));
 
//no.4
numbers.forEach(System.out::println);
 
//no.5
numbers.forEach(new MyConsumer());

拓展:

控制台输出数字九宫格的案例(数字不能重复)
forEach 循环遍历在jdk1.8新特性下的使用_第1张图片

public class Test {
     
 
    static List<List<Integer>> list =new ArrayList<List<Integer>>();
    public static void main(String[] args) {
     
        // TODO Auto-generated method stub
        List<Integer> listarray = new ArrayList<Integer>();
        doit(listarray, 9);
        System.out.println("九宫格:");
        list.forEach(x->{
     
            System.out.println("------------------------");
           for(int i=0;i<x.size();i++) {
     
               System.out.print(x.get(i));
               if((i+1)%3==0) {
     
                   System.out.println();
               }else {
     
                   System.out.print(" ");
               }
           }
        });
    }
 
    static void doit(List<Integer> listarray, int i) {
     
        boolean flag=true;
        if (i >0) {
     
            for(int j=1;j<10;j++) {
     
                List<Integer> listtemp=new ArrayList<Integer>();
                listtemp.addAll(listarray);
                if(listtemp.contains(j)) {
     
                    continue;
                }else {
     
                    listtemp.add(j);
                    doit(listtemp,i-1);
                }
            }
        } else {
     
            int sum=listarray.get(0)+listarray.get(1)+listarray.get(2);
            for(i=3;i<9;i+=3) {
     
                if(listarray.get(i)+listarray.get(i+1)+listarray.get(i+2)!=sum)flag=false;
            }
            for(i=0;i<3;i++) {
     
                if(listarray.get(i)+listarray.get(i+3)+listarray.get(i+6)!=sum)flag=false;
            }
            if(listarray.get(0)+listarray.get(4)+listarray.get(8)!=sum)flag=false;
            if(listarray.get(2)+listarray.get(4)+listarray.get(6)!=sum)flag=false;
            if(flag)list.add(listarray);
        }
    }
}

你可能感兴趣的:(代码练习)