【发布时间】:2019-08-29 08:32:07
【问题描述】:
我已经尝试了以下 java 代码。但我无法得到正确的输出。
public static void main(String[] args) throws IOException
{
ArrayList<HashMap<ArrayList<String>,Integer>> result=new ArrayList<>();
List<ArrayList<String>> list=new ArrayList<>();
list.add(new ArrayList<>(Arrays.asList("a")));
list.add(new ArrayList<>(Arrays.asList("a,b,c")));
list.add(new ArrayList<>(Arrays.asList("a,c")));
list.add(new ArrayList<>(Arrays.asList("c")));
list.add(new ArrayList<>(Arrays.asList("b,d")));
list.add(new ArrayList<>(Arrays.asList("b")));
ArrayList<Integer> value=new ArrayList<Integer>();
value.add(1);
value.add(5);
value.add(3);
value.add(4);
value.add(2);
value.add(1);
HashMap<ArrayList<String>,Integer> map=new HashMap<ArrayList<String>,Integer>();
for(int i=0;i<list.size();i++)
{
map.put(list.get(i),value.get(i));
}
result.add(map);
System.out.println(result);//output : [{[a]=1, [a,b,c]=5, [b]=1, [c]=4, [a,c]=3, [b,d]=2}]
}
我得到了输出:
[{[a]=1, [a,b,c]=5, [b]=1, [c]=4, [a,c]=3, [b,d]=2}]
但是,我想按字数排序,例如:
[{[a]=1,[c]=4,[b]=1},{[a,c]=3, [b,d]=2},{ [a,b,c]=5}]
【问题讨论】:
-
A
HashMap没有任何订单 - 如果您想要有序地图,请查看https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html。 -
您最初的要求是什么,我们可以找到另一种合适的数据结构而不是这个?您可以使用有关您的意图的更多信息来编辑问题吗?
-
根据括号,您想要的输出
[{[a]=1,[c]=4,[b]=1},{[a,c]=3, [b,d]=2},{ [a,b,c]=5}]似乎是三个地图的列表。这是为什么呢? -
在这个问题的当前格式中,实际上并不清楚您实际上想要实现什么:您发布的一些代码显然不能满足您的要求,而且并不明显它的变体将如何(您提到“按字数计算”,但您发布的任何代码行似乎都没有尝试计算字数?)。你能用几句话解释你想要达到的目标:你需要将哪些数据作为输入以及如何输出?