java io流之递归

递归

概念:递归,指在当前方法内调用自己的这种现象

public void method(){
    System.out.println(“递归的演示”);
    //在当前方法内调用自己
    method();
}

递归分为两种,直接递归和间接递归。

直接递归称为方法自身调用自己。

间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。

public static void main(String[] args) {
        // TODO 自动生成的方法存根
        System.out.println(sum(100));
        System.out.println(get(10));
        
    }
    public static void a() {
        
        a();
    }
    //利用递归计算1~100的和
    public static int sum(int n) {
        if(n==1) {
            return 1;
        }else {
            return n+sum(n-1);
        }
    }
    //利用递归求100的成绩
    public static int get(int n) {
        if(n==1) {
            return 1;
        }else {
            return n*get(n-1);
        }
    }
}

注意:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

 
public static void main(String[] args) {

        get(new File("F:\java0512\eclipse0512\io0512"));
    }
    public static void get(File dir) {
        //获取当前目录这一级的文件和文件夹对象数组
        File[] files=dir.listFiles();
        for (File file : files) {
            //如果当前file对象是文件夹那么继续遍历
            if(file.isDirectory()) {
                //打印文件夹
                System.out.println(file+"文件夹");
                get(file);
            }else {
                //如果不是文件夹则直接打印文件
                System.out.println(file);
            }
            
        }
    }

}

public class MyFilter implements FileFilter{


@Override
public boolean accept(File pathname) {
if(pathname.isDirectory()) {
return true;
}
return pathname.getName().toLowerCase().endsWith(".txt");
}

}

 

冒泡排序

    public static void main(String[] args) {
        // 冒泡排序法
        int[] arr= {7,1,6,22,11,3,2};
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length-i-1; j++) {
                if(arr[j]>arr[j+1]) {
                    int n=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=n;
                }
            }
        }
        for (int i : arr) {
            System.out.println(i);        
        }
    
    }

}
原文地址:https://www.cnblogs.com/haoduoyu0512/p/13405250.html