字典搜索得到时间...做什么

时间:2016-05-30 18:53:51

标签: java

import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;

class Solution{
    public static void main(String []argh){
        Map<String,String> phoneBook =new HashMap<String,String>();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        for(int i = 0; i < n; i++){
            String name = in.next();
            String phone = in.next();
           phoneBook.put(name,phone);
           }
           System.out.println("now search");
        while(in.hasNext()){
            String s = in.next();
           for(Map.Entry<String,String> e : phoneBook.entrySet() )
         {
            e.getKey();
            if(name1==s)
            {
              System.out.println(e.getKey()+" : "+e.getValue());
            }
            else
            {
             System.out.println("Not found");
            }
         }
           }
        in.close();
    *

    }
}*

我要做的是在字典中输入一些值,然后搜索字典中是否有特定的字符串...它正在工作,但是由于超时我终止了。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

这是一个散列映射,因此您将使用其功能而不是逐个迭代键。

尝试:

 while(in.hasNext()){
                String s = in.next();

               String value = phonebook.get(s);
                if(value!=null)
                {
                  System.out.println(s+" : "+value);
                }
                else
                {
                 System.out.println("Not found");
                }
             }