【发布时间】:2016-07-05 21:15:30
【问题描述】:
我是 Java 新手,正在尝试学习简写 if-else 语句的概念。
我想出了下面的代码。但是,代码不会编译并在 if-else (即 ? : )语句旁边显示错误。
有人可以告诉我为什么它不起作用吗?
对不起,如果我的问题对你们中的某些人来说听起来很愚蠢。我是 Java 新手。
提前感谢您的帮助!
List<String> ls1 = new LinkedList<>(Arrays.asList("hello", "world", "morning", "world"));
Map<String, Integer> msi1 = new LinkedHashMap<>();
for(String s1 : ls1){
Integer i1 = msi1.get(s1);
i1 == null ? msi1.put(s1, i1) : msi1.put(s1, i1 + 1));//why can't I use the short if-else statement like this.
}
【问题讨论】:
-
你收到了什么错误?
-
您不能使用不返回结果的三元组,在这种情况下,您将忽略来自
put的boolean。它不能按您预期工作的原因很简单,如果i1 == null然后msi1.put(s1, null)这可能不是您想要的。 -
顺便说一句,您不需要在此代码中使用
LinkedList- 您可以直接迭代Arrays.asList("hello", "world" /* etc */)。
标签: java if-statement