Java递归:一个NB自慰的操作
递归的核心思想:自身调用自身
示例一:求5的阶乘
常规方法:
使用while循环
1 public class Demo01 {
2
3 public static void main(String[] args) {
4 int result = test(5);
5 System.out.println("结果是"+result);
6 }
7
8 public static int test(int num) {
9 int result=1;
10 while (num>0) {
11 result=result*num;
12 num--;
13 }
14 return result;
15 }
16 }
使用递归
1 public class Demo01 {
2
3 public static void main(String[] args) {
4 int result = print(5);
5 System.out.println("结果是"+result);
6 }
7
8 public static int print(int num) {
9 if(num==1) {
10 return 1;
11 }else {
12 return num*print(num-1);
13 }
14 }
15 }
示例二:
列出一个文件夹的子孙文件与目录
1 public class Demo01 {
2
3 public static void main(String[] args) {
4 File dir=new File("F:\\aa");
5 listFiles(dir,"|--");
6 }
7
8 public static void listFiles(File dir, String space) {
9 File[] files = dir.listFiles();
10 for(File file : files) {
11 if(file.isFile()) {
12 System.out.println(space+file.getName());
13 }else if(file.isDirectory()) {
14 listFiles(file, "| "+space);
15 }
16 }
17 }
18 }
示例三:
删除一个非空的文件夹
1 public class Demo01 {
2
3 public static void main(String[] args) {
4 File dir=new File("F:\\aa");//创建对象并指定
5 deleteDir(dir);
6 }
7
8 public static void deleteDir(File dir) {
9 File[] files = dir.listFiles(); //列出了所有的子文件
10 for(File file : files) { //文件遍历查询
11 if(file.isFile()) { //如果是文件,执行删除操作
12 file.delete();
13 }else if(file.isDirectory()) { //如果是文件夹,则再调用自身方法
14 deleteDir(file); //括号中的file只是名字,之所以为什么不是dir,只是将上面的名字又带入了deleteDir方法中
15 }
16 }
17 }
18 }
Java递归:一个NB自慰的操作的更多相关文章
- Java 递归调用 recursive 给一个参数 返回一大堆
需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...
- Java实现单链表的各种操作
Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素 4.实现链表的反转 5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...
- 学了编译原理能否用 Java 写一个编译器或解释器?
16 个回答 默认排序 RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...
- 慎用Java递归调用
总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...
- 用Java实现一个二叉树
介绍 使用Java实现一个int值类型的排序二叉树 二叉树 二叉树是一个递归的数据结构,每个节点最多有两个子节点. 通常二叉树是二分查找树,每个节点它的值大于或者等于在它左子树节点上的值,小于或者等于 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...
- 一个NB的安全认证机制
这是一个NB的安全认证机制. 1.这是一个安全认证机制 2.可以防止黑客截获到客户端发送的请求消息,避免了黑客冒充客户端向服务器发送操作的请求. 原理与步骤: 1.客户端与服务器端都会放着一份验证用的 ...
随机推荐
- java关于redis的快速配置
1.关于Jedis安装配置很简单,我主要写一个,能够快速使用redis的工具类,首先导入依赖, 就一个 jedis 最好选用老一点版本 <!-- https://mvnrepository.co ...
- python代码规范和命名规范
一.简明概述 1.编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标识 2.代码格式 2.1.缩进 统一使用 4 个空格进行 ...
- oracle 根据一个表生成另一个新表和一个现有表给一个新的表赋值
1,添加表B ,和A表表结构相同(带数据) create table B as select * from A; 2,添加表B ,和A表表结构相同(不带带数据) create table B as ...
- python学习第三次记录
python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...
- 如何利用伪类元素和vertical-align: middle;实现元素相对于父元素居中
HTML部分 <div class="zhihu"> <div class="loginMain"> </div> < ...
- 在终端中使用vim命令修改某些文件,会提示文件只读模式,可以执行以下命令强制写入
在末行模式中输入以下命令 :w !sudo tee % 回车后可能需要输入密码
- 关于null的判断
Java中[null]的判断: 1.[null]只能通过is null,is not null判断,任何与的 关系运算(比较,有大于.大于等于.小于.小于等于.等于.不等于六种运算)都是false. ...
- scrapy安装问题记录
ubuntu小白一枚,由于对于ubuntu的不了解所以导致有的问题解决不了只能白痴的重装一遍. 总结一下问题: 1.pip安装自带scrapy版本过低官方不提供维护,卸载不完全导致重装最新版不成功 # ...
- 王者荣耀交流协会互评Beta版本--爱阅app
测评人:任思佳 爱阅APP软件说明书地址:http://www.cnblogs.com/szjzsd/p/7881686.html 1.根据NABCD评论作品的选题: N(Need):相比α发布来 ...
- Ubuntu下useradd与adduser区别
Ubuntu下useradd与adduser有所不同 1.useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个 ...