我有一个HashMap和一个包含键/值的属性文件。 属性文件以“4,5 = 2”格式存储键/值 我已经构建了一个从文件加载属性的方法,它将“keys / value”对放入HashMap数组(String,Integer)。但我的问题是我希望将每个键元素存储为int,以便将它们用作另一个方法的参数。密钥存储为String。 任何帮助,将不胜感激。谢谢!
public static HashMap<String, Integer> hashMap = new HashMap<>();
prop.load(input);
Enumeration<?> e = prop.propertyNames();
while (e.hasMoreElements()) {
key = (String) e.nextElement();
intValue=Integer.parseInt(prop.getProperty(key));
hashMap.put(key, intValue);
答案 0 :(得分:0)
将key-String拆分为“,”
public static HashMap<String, Integer> hashMap = new HashMap<>();
prop.load(input);
Enumeration<?> e = prop.propertyNames();
while (e.hasMoreElements()) {
String sKey = (String) e.nextElement();
intValue = Integer.parseInt(prop.getProperty(sKey));
String[] keys = sKey.split(",");
for(String key: keys)
hashMap.put(key, intValue);
答案 1 :(得分:0)
由于您的键似乎是一对整数,因此您需要将Pair类用作键。然后只需访问getFirst()或getSecond()以与其他api一起使用。
public class IntPair {
private final int first;
private final int second;
public IntPair(int first, int second) {
this.first = first;
this.second = second;
}
@Override
public int hashCode() {
int hash = 3;
hash = 89 * hash + this.first;
hash = 89 * hash + this.second;
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final IntPair other = (IntPair) obj;
if (this.first != other.first) {
return false;
}
if (this.second != other.second) {
return false;
}
return true;
}
public int getFirst() {
return first;
}
public int getSecond() {
return second;
}
}