Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 此代码不起作用的原因是什么?_Java - Fatal编程技术网

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个随机字符。