Java语言程序设计基础篇_编程练习题*18.28 (非递归目录大小)

目录

题目:*18.28 (非递归目录大小)

习题思路

代码示例

输出结果


题目:*18.28 (非递归目录大小)

不使用递归改写程序清单18-7

  • 习题思路
  1. ( getSize方法)
    1. 创建一个变量表示总共的大小。
    2. 传入路径,创建File文件。
    3. 创建ArrayList<File>列表,并添加传入的文件。
    4. 如果列表不为空,则进入wile循环。
      1. 再新建一个ArrayList<File>存储子文件和目录
      2. 用for循环遍历每一个子文件/目录。
        1. 如果遍历元素是一个目录
          1. 遍历这个目录,如果遍历元素是文件则累加文件大小,如果是目录则添加到步骤4.1新建的目录中。
        2. 如果遍历元素是文件则累加文件大小。
      3. 将步骤4.1中的列表转移到步骤2的列表中(这个步骤要在while循环内)
  • 代码示例

编程练习题18_28NonRecursiveDirectorySize.java

package chapter_18;import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;public class 编程练习题18_28NonRecursiveDirectorySize {public static void main(String[] args) {System.out.print("Enter a directory or a file: ");Scanner input = new Scanner(System.in);String directory = input.nextLine().replaceAll("\\\\", "//");System.out.println(getSize(new File(directory)) + " bytes");input.close();}public static long getSize(File file) {long size = 0;ArrayList<File> files = new ArrayList<File>();files.add(file);while(!files.isEmpty()) {ArrayList<File> newList = new ArrayList<File>();for(File f : files) {if(f.isFile())size += f.length();else {File[] fileList = f.listFiles();if(file != null) {for(File f2:fileList){if(f2.isDirectory())newList.add(f2);else size += f2.length();}}}}files = newList;}return size;}}
  •  输出结果
Enter a directory or a file: C:\Users\Lenovo\eclipse-workspace\JavaFX
21530663 bytes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1538006.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

生成式人工智能在无人机群中的应用、挑战和机遇

人工智能咨询培训老师叶梓 转载标明出处 无人机群在执行人类难以或危险任务方面有巨大潜力&#xff0c;但在复杂动态环境中学习和协调大量无人机的移动和行动&#xff0c;对传统AI方法来说是重大挑战。生成式人工智能&#xff08;Generative AI, GAI&#xff09;&#xff0c;凭…

IPPBX概述

IP PBX涵义 IP PBX是一种电信设备&#xff0c;IP PBX是一种专用交换机&#xff08;企业内的电话交换系统&#xff09;&#xff0c;用于在本地线路上的VoIP&#xff08;互联网协议语音或IP&#xff09;用户之间切换呼叫&#xff0c;同时允许所有用户共享一定数量的外部电话线路…

【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a; c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 &#x1f354…

编译和链接以及makefile

编译和链接以及makefile 问题引出&#xff0c;为什么我们会忽略编译和链接这个步骤 一定都会用到但却很少被重视的步骤——编译和链接&#xff0c;通常这两个步骤被我们的IDE封装的很完美&#xff0c;我们一般都是一件构建。 但是一旦遇到错误的时候&#xff0c;尤其是链接相关…

动手学深度学习(pytorch土堆)-05-1神经网络

Neural network 以下是 torch.nn 库中各个组件的详细分类&#xff1a; 1. 容器 (Containers) torch.nn.Sequential: 顺序容器&#xff0c;用于将层按顺序堆叠在一起。torch.nn.ModuleList: 模块列表&#xff0c;用于存储多个子模块。torch.nn.ModuleDict: 模块字典&#xff…

Pycharm出现Please specify a different SDK name报错,但是看不到重名环境解决方案

这句话的意思是出现了重名的环境 &#xff0c;一般情况下删除重名的环境即可解决问题。做法如下图所示 1&#xff0c;点击右上角齿轮→settings&#xff08;或者File→settings&#xff09;进入Python Interpreter 2.点击这个沙漏按键&#xff0c;你会发现多了几个环境&#x…

minio的最大优势--运维(五)

前言&#xff1a; 前面讲了minio的简介、场景、单机部署、集群部署等内容&#xff0c;现在简单来讲讲它的运维工具。 一、Minio客户端使用&#xff08;这个中文文档没问题&#xff09; 官方文档地址&#xff1a;https://docs.min.io/docs/minio-client-quickstart-guide.html…

穿什么有这么重要?——装饰模式

文章目录 穿什么有这么重要&#xff1f;——装饰模式穿什么有这么重要&#xff1f;小菜扮靓第一版小菜扮靓第二版装饰模式小菜扮靓第三版商场收银程序再升级简单工厂策略装饰模式实现装饰模式总结 穿什么有这么重要&#xff1f;——装饰模式 穿什么有这么重要&#xff1f; 时…

手写redis实现分布式锁详细教程,满足可续锁、可重入等分布式锁条件

前言 本文将讨论的做一个高并发场景下避不开的话题&#xff0c;即redis分布式锁。比如在淘宝 的秒杀场景、热点新闻和热搜排行榜等。可见分布式锁是一个程序员面向高级的一门必修课&#xff0c;下面请跟着本篇文章好好学习。 redis分布式锁有哪些面试题 1.Redis做分布式的时…

执着追求与匠心独运 朵拉朵尚2024欧洲溯源 深入德国巴斯夫

执着追求与匠心独运 朵拉朵尚2024欧洲溯源 深入德国巴斯夫 前不久&#xff0c;朵拉朵尚踏上了其2024年欧洲溯源之旅的第三站—德国巴斯夫&#xff0c;一场旨在深化护肤智慧、共谋新品未来的深度交流盛宴在此拉开帷幕。作为全球最大的化工公司&#xff0c;巴斯夫不仅以其卓越的…

电脑录屏工具哪个好用?推荐新手几款实用工具介绍

现在不管是录个教学视频教教别人&#xff0c;还是直播游戏给粉丝看&#xff0c;或者是展示你的产品&#xff0c;都得用到它。但是市面上的录屏软件多得让人眼花缭乱&#xff0c;新手可能一看就懵了。别急&#xff0c;今天我就给你介绍几个特别好用的电脑录屏工具&#xff0c;不…

攻克大模型面试!RAG基础与应用痛点一网打尽!

RAG相关理论知识与经验整理。 谈到大模型在各垂直领域中的应用&#xff0c;一定离不开RAG&#xff0c;本系列开始分享一些RAG相关使用经验&#xff0c;可以帮助大家在效果不理想的时候找到方向排查或者优化。 本系列以医疗领域为例&#xff0c;用面试题的形式讲解RAG相关知识…

唤醒金融数据中台:我的数据驱动秘籍

目录 一、明析业务痛点和机会点二、数据驱动精准化营销三、一体化数据平台——整合金融数据1. 数据整合与标准化2. 数据服务与共享3.业务体系集中化 四、强化金融数据安全&#xff0c;筑牢数据保护防线 在当今数字化时代的大潮中&#xff0c;数据无疑是金融行业最耀眼的财富。作…

销售管理中的难题,你是否也深陷其中?

销售管理中的难题似乎总是让人头疼。从客户跟进不及时&#xff0c;到销售数据分析不足&#xff0c;再到团队沟通不畅&#xff0c;导致商机频频流失。销售目标总是难以达成&#xff0c;业绩压力越来越大&#xff0c;但解决方案却总是力不从心。面对这样的问题&#xff0c;你是不…

Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用增强版

前言 之前使用Chainlit集成LlamaIndex并使用通义千问大语言模型的API接口&#xff0c;实现一个基于文档文档的网页对话应用。 可以点击我的上一篇文章《Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用》 查看。 本次针对上一次的代码功能进一步的完善…

推动公平学习与身份归一化的视网膜神经疾病数据集

人工智能咨询培训老师叶梓 转载标明出处 在机器学习领域&#xff0c;公平性&#xff08;也称为公正性或平等性&#xff09;是一个日益受到关注的话题&#xff0c;它对于社会的福祉至关重要。然而&#xff0c;目前缺乏专门用于公平学习且包含成像数据的公共医学数据集&#xff…

分苹果 - 华为OD统一考试(E卷)

2024华为OD机试(E卷+D卷+C卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 A 和 B 两个人要分苹果。A 希望按照他的计算规则得到平均分配的苹果,而 B 希望在满足 A 的条件下获得尽可能多的苹果量。 A 的计算规则是按照二进制加法进行,并不计算进位。例如,12 + 5 =…

CAT1 DTU软硬件设计开源资料分析(TCP协议版本 )

一、CAT1 DTU方案简介&#xff1a; 远程终端单元DTU&#xff0c;一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元&#xff0c;它将末端检测仪表和执行机构与远程控制中心相连接。 奇迹TCP DTU版本DTU&#xff0c;用于将远程现场的传感…

VoIP协议

VoIP协议是VoIP业务的规范标准。我们都知道VoIP业务有着压倒性的优势。随着网络应用的多元化和低成本化发展&#xff0c;VoIP业务直接冲击着传统通信市场&#xff0c;那么目前VoIP协议目前常用的协议,如H.323、SIP、MEGACO和MGCP。 H.248 H.248是定义网关控制协议的ITU建议书…

分布式光伏发电站数据采集设备管理硬件解决方案

随着全球能源结构的转型和可再生能源的快速发展&#xff0c;光伏发电作为重要的清洁能源之一&#xff0c;在能源市场中占据了越来越重要的位置。AcrelCoud-1200分布式光伏运维云平台通过监测光伏站点的逆变器设备&#xff0c;气象设备以及摄像头设备&#xff0c;帮助用户管理分…