类Test
是我的单独类,它有两个String
和Float
类型的字段,我使用此类与列表集合,最终将作为值填充到{{1 }}。
但是当我尝试使用键和List对象(值)将Map填充到地图中时,Java似乎不接受它,因为它不是有效的语法:
HashMap
输出:
ArrayList <Test> list = new ArrayList <Test> ();
Map<Integer, ArrayList <Test>> mp = new HashMap<Integer, ArrayList <Test>>();
list.add(new Telephone ( 0.9 , "A"));
list.add(new Telephone(5.1 , "A"));
mp.put(0,list.get(0)); // this Does Not work :(, it should work
答案 0 :(得分:2)
你的地图接受一个Integer作为键,并将TestList的ArrayList作为value.But而不是Test对象的arrayList,你试图放置Telephone对象。 你的IDE清楚地说明了这一点。
Map<Integer,ArrayList<Telephone>> is not applicable for the arguments
(int, Telephone) at Main.main(Main.java:64)
答案 1 :(得分:2)
根据您的要求,您在上面的评论和问题中告诉我,我认为您需要遵循地图声明的以下语法:
Map<Integer,Test> mp = new HashMap<Integer,Test>();
修改强>
好的是编辑:
ArrayList<Test> list = new ArrayList<Test>();
Map<Integer,ArrayList<Test>> mp = new HashMap<Integer,ArrayList<Test>>();
list.add(new Test(0.1,"A"));
list.add(new Test(0.2,"B"));
mp.put(1,list);
如果您再次想要在键1上放置更多Test对象,请执行以下操作:
List<Test> value = mp.get(1);
value.add(0.3,"c");
value.add(0.5,"E");
mp.put(1,value);
答案 2 :(得分:1)
当您尝试将简单的List
对象放在那里时,您的地图只能接受Telephone
个对象作为值。