yw404109794 2009-06-15 13:52 采纳率: 0%
浏览 505
已采纳

如何向Map中放入值

大家看下这段代码有什么问题!
[code="java"]
public Map soureFile(String sourePath) {
Map map = new java.util.HashMap();
File dir = new File(sourePath);
File[] files = dir.listFiles();

    if (files == null){
        return map;
    }

    for (int i = 0; i < files.length; i++) {
        if (files[i].isDirectory()) {
            soureFile(files[i].getAbsolutePath());
        } else {
            String strFileName = files[i].getAbsolutePath();
            System.out.println("---" + strFileName);

            map.put(files[i], strFileName);

        }

    }
          return map
  }

[/code]
但是 我取 map的时候发现 map.size()==0 这是为什么啊!
[b]问题补充:[/b]
大家看下这段代码有什么问题!
[code="java"]
public Map soureFile(String sourePath) {
Map map = new java.util.HashMap();
File dir = new File(sourePath);
File[] files = dir.listFiles();

    if (files == null){
        return map;
    }

    for (int i = 0; i < files.length; i++) {
        if (files[i].isDirectory()) {
            soureFile(files[i].getAbsolutePath());
        } else {
            String strFileName = files[i].getAbsolutePath();
            System.out.println("---" + strFileName);

            map.put(files[i], strFileName);

        }

    }
          return map;
  }

[/code]
但是 我取 map的时候发现 map.size()==0 这是为什么啊!
[b]问题补充:[/b]
System.out.println();打印出来有东西啊!

  • 写回答

5条回答 默认 最新

  • wanghaolovezlq 2009-06-15 14:07
    关注

    晕啊,你新建的map都是个局部变量,

    你用的又是递归的方式,自然永远也只会返回这个地方

    if (files == null){

    return map;

    }

    应该这样,这个Map map = new java.util.HashMap(); 应该是从方法外面传进来

    [code="java"]
    public Map soureFile(Map map, String sourePath) {

        File dir = new File(sourePath);
        File[] files = dir.listFiles();
    
        if (files == null){
            return map;
        }
    
        for (int i = 0; i < files.length; i++) {
            if (files[i].isDirectory()) {
                soureFile(map,files[i].getAbsolutePath());
            } else {
                String strFileName = files[i].getAbsolutePath();
                System.out.println("---" + strFileName);
    
                map.put(files[i], strFileName);
    
            }
    
        }
              return map;
      }
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的