概念:
函数自己调用自己。
应用场景:
当某一功能要重复使用时。
注意:1、递归时一定要明确结束条件。2、要注意递归的次数,尽量避免内存溢出。
练习:
1、将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
函数自己调用自己。
应用场景:
当某一功能要重复使用时。
注意:1、递归时一定要明确结束条件。2、要注意递归的次数,尽量避免内存溢出。
练习:
1、将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
import java.io.*;
import java.util.*;
class JavaFileList
{
public static void main(String[] args) throws IOException
{
File dir = new File("d:\\java1223");
List<File> list = new ArrayList<File>();
fileToList(dir,list);
//System.out.println(list.size());
File file = new File(dir,"javalist.txt");
writeToFile(list,file.toString());
}
public static void fileToList(File dir,List<File> list)
{
File[] files = dir.listFiles();
for(File file : files)
{
if(file.isDirectory())
fileToList(file,list);
else
{
if(file.getName().endsWith(".java"))
list.add(file);
}
}
}
public static void writeToFile(List<File> list,String javaListFile)throws IOException
{
BufferedWriter bufw = null;
try
{
bufw = new BufferedWriter(new FileWriter(javaListFile));
for(File f : list)
{
String path = f.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush();
}
}
catch (IOException e)
{
throw e;
}
finally
{
try
{
if(bufw!=null)
bufw.close();
}
catch (IOException e)
{
throw e;
}
}
}
}
2、二进制转换和叠加运算
public static int getSum(int n)
{
if(n==1)
return 1;
return n+getSum(n-1);
}
public static void toBin(int num)
{
if(num>0)
{
toBin(num/2);
System.out.println(num%2);
}
}