如何在java中的KeyPairValue中定义值

时间:2016-09-26 07:56:57

标签: java

我的应用程序确实有很多角色。

private static HashMap<String, String> doctorcredentials = new HashMap<String, String>("doctor","Test1234!");

删除参数会引发错误。每次我只需要添加即可获得此凭据。无法直接定义?

4 个答案:

答案 0 :(得分:3)

HashMap没有构造函数来支持您指定的参数。请参阅documentation

按照

中的指定,在hashmap中使用值
HashMap<String, String> hm = new HashMap<String, String>(); 

hm.put("first", "FIRST INSERTED"); 
hm.put("second", "SECOND INSERTED"); 
hm.put("third","THIRD INSERTED");

答案 1 :(得分:2)

由于documentation,没有可以从现有地图以外的集合创建HashMap的构造函数

    public HashMap(Map<? extends K,? extends V> m)

实现新HashMap的正确方法是在创建新实例

后逐个添加对
    private static HashMap<String, String> doctorcredentials = new HashMap<String, String>();
    doctorcredentials.put("doctor","Test1234!");
    //etc...

无论如何,您可以创建一个将为您创建HashMaps的Factory类 - 类似于

    //You need to add casting exception handling, no argument situation etc...
    public class HashMapFactory<T, V> { 
        public HashMap<T, V> create(Object... arg) {
            HashMap<T, V> map = new HashMap<T, V>();

            for(int i = 1; i < arg.length; i+=2) {
                map.put((T)arg[i-1], (V)arg[i]);
            }

            return map;
        }
    }

然后你可以像

一样使用它
    HashMapFactory<String, String> factory = new HashMapFactory<String, String>();

    HashMap<String, String> map = factory.create("one", "two", "three", "four", "five", "six");
    System.out.println(map.get("five"));

答案 2 :(得分:1)

你可以简单地声明你的地图:

private static HashMap<String, String> doctorcredentials = new HashMap<String, String>() {
    {
        put("doctor","Test1234!");
    }
};

答案 3 :(得分:0)

我想你想这样做:

.hardbreak {
  display: block;
  -webkit-column-break-after: always;
  -moz-column-break-after: always;
  -ms-column-break-after: always;
  -o-column-break-after: always;
  column-break-after: always;
  break-after: always;
  overflow: hidden;
}

.columns {
  -webkit-column-width: 250px;
  column-width: 250px;
}