Java 此代码不起作用的原因是什么?
我有一门课是这样的:Java 此代码不起作用的原因是什么?,java,Java,我有一门课是这样的: public class StringCheckLHMapSorted<K, V> extends ObjectLHMapSorted<K, V> { public LinkedHashMap<Boolean, String> getSCLHAllStringAndCheckInside() { LinkedHashMap<Boolean, String> allStrCh = new LinkedHashM
public class StringCheckLHMapSorted<K, V>
extends
ObjectLHMapSorted<K, V> {
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;
}
我在这个问题顶部描述的类中创建了一个方法,如下所示:
public class StringCheckLHMapSorted<K, V>
extends
ObjectLHMapSorted<K, V> {
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;
}
public LinkedHashMap getSCLHAllStringAndCheckInside(){
LinkedHashMap allStrCh=新LinkedHashMap();
对于(Map.Entry e:scoLHMap.entrySet()){
allStrCh.put(e.getValue().isCheck(),e.getValue().getString());
}
返回所有strch;
}
返回allStrCh的对象只给我一个条目;插入的最后一个更具体。我用ArrayList替换了allStrCh,只获取键/值,它给了我每个键/值的完整列表;键/值
为什么会这样?我遗漏了什么吗?LinkedHashMap只是保留了插入的顺序-如果你.put(true,x)然后.put(true,y),它仍然会覆盖以前在true键处的内容
你可能想做这样的事 为什么您的支持映射不使用边界
K
和V
而不是Integer
和StringCheck
?您得到了一个从Boolean
到String
的映射-只有两个Boolean
值(false和true),因此您的映射只能包含两个条目。如果它只有一个条目,那么可能所有条目的isCheck()
都是false,或者所有条目都是true。Makoto,ObjectLHMapSorted希望键/值的范围更广。Jon Skeet,scoLHMap适用,因此,我想要这样的列表:--名称:3loagt,状态:true--对于scoLHMap中的每个键,您都是对的Jon Skeet。我以相反的方式使用它们。字符串转换为布尔值。谢谢,我明白了。我不能有重复的。所以你建议我以相反的方式使用它们。我是说。字符串是6个随机字符。