我是Java的新手。我如何在HashMap中存储一个整数值数组,之后我将这个HashMap写入一个txt文件中,但这一点并不重要。我可以存储单个字段但不能存储数组。有任何想法吗 ?
public void salveazaObiectulCreat(String caleSpreFisier) {
HashMap map = new HashMap();
map.put ("Autorul",numelePrenumeleAutorului);
map.put ("Denumirea cartii",denumireaCartii);
map.put ("Culoarea cartii",culoareaCartii);
map.put ("Genul cartii",gen);
map.put ("Limba",limba);
map.put ("Numarul de copii",numarulDeCopii);
map.put ("Numarul de pagini",numarulDePagini);
map.put ("Pretul cartii",pretulCartii);
try {
File file = new File(caleSpreFisier);
FileOutputStream f = new FileOutputStream(file);
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject(map);
s.close();
} catch(Exception e){
System.out.println("An exception has occured");
}
}
答案 0 :(得分:27)
不确定确切的问题,但这是你在找什么?
public class TestRun
{
public static void main(String [] args)
{
Map<String, Integer[]> prices = new HashMap<String, Integer[]>();
prices.put("milk", new Integer[] {1, 3, 2});
prices.put("eggs", new Integer[] {1, 1, 2});
}
}
答案 1 :(得分:26)
HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>();
HashMap<String, int[]> map = new HashMap<String, int[]>();
选择一个,例如
HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>();
map.put("Something", new ArrayList<Integer>());
for (int i=0;i<numarulDeCopii; i++) {
map.get("Something").add(coeficientUzura[i]);
}
或只是
HashMap<String, int[]> map = new HashMap<String, int[]>();
map.put("Something", coeficientUzura);
答案 2 :(得分:5)
是的,Map接口允许您将Arrays存储为值。这是一个非常简单的例子:
int[] val = {1, 2, 3};
Map<String, int[]> map = new HashMap<String, int[]>();
map.put("KEY1", val);
答案 3 :(得分:0)
如果您想为密钥存储多个值(如果我理解正确的话),您可以尝试MultiHashMap(在各种库中可用,而不仅仅是公共集合)。
答案 4 :(得分:0)
如果您可以将List保存为该值而不是该Map中的数组,那么您的生活会更容易。
答案 5 :(得分:-1)
您可以将对象存储在HashMap中。
HashMap<String, Object> map = new HashMap<String, Object>();
你只需要正确地把它丢掉。