Java 如何遍历哈希表并返回值?

Java 如何遍历哈希表并返回值?,java,file,map,iterator,hashtable,Java,File,Map,Iterator,Hashtable,我必须读一个文件。文件如下所示- 123 143 我已经编写了下面的代码,其中我将该文件读入哈希表 public Hashtable<String, String> readDataFromFile(String fileName) { try { FileReader fr = new FileReader(fileName); BufferedReader br = new BufferedR

我必须读一个文件。文件如下所示-

123

143

我已经编写了下面的代码,其中我将该文件读入哈希表

public Hashtable<String, String> readDataFromFile(String fileName) {
            try {
                FileReader fr = new FileReader(fileName);
                BufferedReader br = new BufferedReader(fr);
                String strLine = null;
                String []prop = null;
                while((strLine = br.readLine()) != null) {
                    prop = strLine.split("\t");
                    recruiters.put(prop[0], prop[1]);
                }
                br.close();
                fr.close();

            }catch(Exception exception) {
                System.out.println("Unable to read data from recruiter file: " + exception.getMessage());
            }
            return recruiters;
        }
公共哈希表readDataFromFile(字符串文件名){
试一试{
FileReader fr=新的FileReader(文件名);
BufferedReader br=新的BufferedReader(fr);
字符串strLine=null;
字符串[]prop=null;
而((strLine=br.readLine())!=null){
prop=strLine.split(“\t”);
招聘人员。put(第[0]项、第[1]项);
}
br.close();
fr.close();
}捕获(异常){
System.out.println(“无法从招聘人员文件中读取数据:”+exception.getMessage());
}
返回招聘人员;
}
此函数返回一个哈希表,第一个参数作为id,第二个参数作为链接

现在,我想写一个函数,在其中我可以读取哈希表,并将第二个参数附加到第一个参数,该函数应该返回一个总url作为结果

比如www.abc.com/123

我就是这样开始的,但对我来说不起作用。。请建议改进

public String readFromHashtable(Hashtable recruiters){

            String url=null;        
            Set<String> keys = hm.keySet();
            for(String key: keys){
                //Reading value and key
                // Appending id into url and returning each of the url.
            }
            return url;

        }
从哈希表读取的公共字符串(哈希表招聘人员){
字符串url=null;
设置键=hm.keySet();
用于(字符串键:键){
//阅读价值与关键
//将id追加到url并返回每个url。
}
返回url;
}
如果您想要两个值(key+value),那么在 有

您需要以某种方式收集URL。在当前代码中,每次循环重复时都会重新分配
url
变量,因此最后只返回最后一个url

像这样的方法应该会奏效:

public List<String> readFromHashtable(Hashtable recruiters){
    List<String> urls = new ArrayList<String>(recruiters.size());      
    for(Entry e : recruiters.entrySet()){
        urls.add(e.getValue() + '/' + e.getKey());
    }
    return urls;
}
public List readFromHashtable(Hashtable招聘人员){
List url=newarraylist(recruiters.size());
对于(条目e:recruiters.entrySet()){
add(e.getValue()+'/'+e.getKey());
}
返回URL;
}
还有,为什么要使用HashTable而不是HashMap。如果不使用线程对哈希表进行操作,则可能更喜欢HashMap