黑马程序员技术交流社区

标题: 以下为Android的Java基础里面的一道点招题,有大神会解? [打印本页]

作者: Hunter黄涛    时间: 2016-11-4 00:37
标题: 以下为Android的Java基础里面的一道点招题,有大神会解?
3.遍历D盘下的所有文件,统计出有多少种文件类型:将每种扩展名以及对应个数打印到控制台上;(12分)
//以上为题目,下图为输出格式要求
//请写出完整步骤,并给关键步骤注释,最好都注释


作者: LARK    时间: 2016-11-4 08:02
用递归,在递归方法外定义一个静态成员变量计数,每打印一个count++

作者: Hunter黄涛    时间: 2016-11-4 08:41
LARK 发表于 2016-11-4 08:02
用递归,在递归方法外定义一个静态成员变量计数,每打印一个count++

这个逻辑我知道,但是具体的代码就~
作者: 阿萨飒飒    时间: 2016-11-4 10:14
[Java] 纯文本查看 复制代码
package com.sp;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Demo {
        // 定义一个map集合,存放后缀名个数
        private static Map<String, Integer> map = new HashMap<>();

        public static void main(String[] args) {
                // 要遍历的路径
                File file = new File("D:\\桌面\\1");
                map = diGui(file);
                // 遍历Map
                Set<String> keySet = map.keySet();
                for (String key : keySet) {
                        int num = map.get(key);
                        System.out.println("扩展名:" + key + ":        " + num + "个");
                }
        }

        /**
         * 递归判断路径
         */
        private static Map<String, Integer> diGui(File file) {
                // 判断路径是否存在
                if (file.exists()) {
                        if (file.isFile()) {
                                // 如果是文件,获取后缀名,添加到map集合
                                String houZhui = file.getName().substring(
                                                file.getName().lastIndexOf(".") + 1);
                                // 添加到map集合
                                if (map.containsKey(houZhui)) {
                                        // 如果houZhui已存在,获取值+1
                                        Integer value = map.get(houZhui);
                                        value++;
                                        map.put(houZhui, value);
                                } else {
                                        // 如果houZhui已存在,值直接设为1
                                        map.put(houZhui, 1);
                                }
                        } else {
                                // 是文件夹,获取文件夹下的文件及文件夹,继续递归
                                File[] listFiles = file.listFiles();
                                for (File file2 : listFiles) {
                                        diGui(file2);
                                }
                        }
                }
                return map;
        }
}



作者: 阿萨飒飒    时间: 2016-11-4 10:17
上面代码试了一下没问题,参考参考
作者: LARK    时间: 2016-11-4 13:20
Hunter黄涛 发表于 2016-11-4 08:41
这个逻辑我知道,但是具体的代码就~

我们当时点招考的就是这题,,要自己多思考,自己敲出来才是理解,不要看别人源代码

作者: Hunter黄涛    时间: 2016-11-5 00:07
阿萨飒飒 发表于 2016-11-4 10:14
[mw_shl_code=java,true]package com.sp;

import java.io.File;

谢谢!这是前天3号上午时参加点招的最后一道题,考试时没做出来,考后还是感觉有问题一直运行不到最终的需求,所以想找大神指点一下,好吧这题弄懂。
作者: 大黄蜂    时间: 2016-11-5 00:34
android和java的基础相似吗?
作者: 阿萨飒飒    时间: 2016-11-5 15:46
Hunter黄涛 发表于 2016-11-5 00:07
谢谢!这是前天3号上午时参加点招的最后一道题,考试时没做出来,考后还是感觉有问题一直运行不到最终的 ...

考试是上机考还是手写?一共有几题啊?

作者: Hunter黄涛    时间: 2016-11-6 21:11
大黄蜂 发表于 2016-11-5 00:34
android和java的基础相似吗?

传智黑马这边的Android基础班和java基础班是一样的,都是学的JavaSE部分,就是java基础班的比安卓的多一个MySQL及JDBC开发。
作者: Hunter黄涛    时间: 2016-11-6 21:13
大黄蜂 发表于 2016-11-5 00:34
android和java的基础相似吗?

传智黑马这边的Android基础班和java基础班是一样的,都是学的JavaSE部分,就是java基础班的比安卓的多一个MySQL及JDBC开发。
作者: Hunter黄涛    时间: 2016-11-6 21:15
阿萨飒飒 发表于 2016-11-5 15:46
考试是上机考还是手写?一共有几题啊?

在校的话是上机考试3个编程题!第一题8分,第二题10分,第三题12分,共30分,20分及格通过!通过后才能进入面试环节,不然第二天还有一次补考机会!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2