我有一个这样的课程:
public class StringCheckLHMapSorted<K, V>
extends
ObjectLHMapSorted<K, V> {
我在LinkedHashMap里面声明如下:
private final Map<Integer, StringCheck> scoLHMap =
(Map<Integer, StringCheck>) new LinkedHashMap<K, V>();
StringCheck类具有此属性及其各自的setter / getter,而其他内容则没有:
private boolean check;
private String string;
我在这个问题顶部描述的类中创建了一个方法,如下所示:
public LinkedHashMap<Boolean, String> getSCLHAllStringAndCheckInside() {
LinkedHashMap<Boolean, String> allStrCh = new LinkedHashMap<Boolean, String>();
for (Map.Entry<Integer, StringCheck> e : scoLHMap.entrySet()) {
allStrCh.put(e.getValue().isCheck(), e.getValue().getString());
}
return allStrCh;
}
返回allStrCh的对象只给我一个条目;插入的最后一个更具体。我用一个ArrayList替换了allStrCh,只获取了键/值,它给出了每个键的完整列表;键/值。
为什么会这样?我错过了什么吗?
答案 0 :(得分:0)
LinkedHashMap只保留插入的顺序 - 如果你.put(true,x)然后.put(true,y)它仍会覆盖之前真正键的任何内容。
你可能想做这样的事情? HashMap with multiple values under the same key