【发布时间】:2011-08-29 13:34:19
【问题描述】:
我需要帮助将字符串数组中的值添加到 HashMap 中。
if (!loaded){
synchronized(syncLock){
if (!loaded){
loaded=true;
if (prefix!=null){
prefixMap = new HashMap<Integer, Float>();
String userDefaultPrefix[] = prefix.split("~");
}
}
}
}
我将字符串存储在 userDefaultPrefix 中,我需要将这些值添加到 prefixMap。 TIA
【问题讨论】:
-
A "map" 映射事物 -- A => B. 那么你打算映射到什么?
-
prefixMap 是
Map<Integer,Float>而 userDefaultPrefix 中的元素是Strings,您应该说明您希望如何添加这些元素,并提供示例输入,以获得更好的答案。 -
@Amit --- 抱歉,它是一个 prefixMap = new HashMap
(); -
@Jeyaprakash:整数应该是多少? 1,...,userDefaultPrefix.length ? 0,...使用DefaultPrefix.length-1?还是完全不同的东西?
-
另外,有点不相关,但您似乎以不安全的方式使用双重检查锁定。您可能计划在
synchronized块之外访问prefixMap。为了正确起见,您应该使用ConcurrentHashMap或Collections.synchronizedMap()而不是常规的HashMap,并确保loaded和prefixMap变量都声明为volatile。此外,loaded=true;应该出现在块的末尾。
标签: java arrays string hashmap