我在我的小Java应用程序中发现了一个奇怪的行为(至少对我来说是这样)。我有一个从命令行运行的app.jar来做一个简单的任务。任务是,从给定的列表中找到重复的值并删除它们。该应用程序是使用JDK-7开发的,并使用JRE-7运行。
从我的PC的命令行,一切正常,但当运行相同的JAR的虚拟机,这是Windows-7作为我的和相同的JRE,它没有删除重复的,没有任何错误发生。
下面是我的代码:
public List<String> removeDuplicatedFin(List<String> coreList,
Map<String, String> strToRemoveMap) {
for (int y = 0; y < coreList.size(); y++) {
String str = coreList.get(y).getPosts().get(0).getMyStr();
String id = coreList.get(y).getPosts().get(0).getId();
if (strToRemoveMap.get(str) != null
&& strToRemoveMap.get(str).equals(idPost)) {
coreList.get(y).getPosts().remove(0);
}
}
return coreList;
}coreList是主列表
strToRemoveMap包含要删除的值
有什么想法或帮助吗?
提前感谢
发布于 2016-08-16 21:07:06
非常感谢你的回复。最后,我发现出现这种异常是因为我将两个字符串与示例进行了比较
if(str1.equals(str2))
我不知道为什么当我改变的时候
if(str1 == str2) 它工作得很完美。但是,在Eclipse和我的PC中,它也可以使用equals()。
我需要学习更多关于这类事情的知识,而不仅仅是。
谢谢,祝你有愉快的一天。
https://stackoverflow.com/questions/38971825
复制相似问题