我必须比较两个Excel文件(数据不同)并创建两个新的Excel表:
因此,我迭代两个Excel文件,并将匹配项存储在LinkedHashMap中。在第二个LinkedHashMap中,我存储Excel文件中的所有条目。通过这两张地图,我想识别三角洲。
为了识别增量,我比较了两个列表,现在想要从完整列表中删除所有条目,如果条目已经与匹配的条目在列表中。
我尝试了不同的解决方案-所有的结果都是代码正在运行,但从来没有一个条目被真正删除。有人能帮忙吗?
这是我的密码:
// This code fills both Maps
LinkedHashMap<String, String> liste_matches = new LinkedHashMap<String, String> ();
LinkedHashMap<String, String> liste_complete = new LinkedHashMap<String, String> ();
while(worksheet1.getLastRowNum() >= j){
liste_complete.put(String.valueOf(worksheet1.getRow(j).getCell(18)), "");
// Counter for loop, loops trough Telekom datasets
int i = 1;
while(worksheet2.getLastRowNum() >= i)
{
if(String.valueOf(worksheet1.getRow(j).getCell(18)).equals(String.valueOf(worksheet2.getRow(i).getCell(9))))
{
if(!liste_matches.containsKey(String.valueOf(worksheet1.getRow(j).getCell(18)))){
liste_matches.put(String.valueOf(worksheet1.getRow(j).getCell(18)), "");
}
}
}
// build Excel table
}
这是我的代码,我用来比较两个列表,并从已经liste_matches的liste_complete中删除所有条目。
我第一次尝试了这个(我在第二次尝试时插入了ArrayList…)。它正在运行,但对列表没有任何影响。ArrayList=新建ArrayList();
for(Map.Entry<String,String> keyDelta : liste_complete.entrySet())
{
for(Map.Entry<String,String> key : liste_matches.entrySet()){
if(keyDelta.equals(key)){
liste_complete.remove(keyDelta);
list.add(entry.getValue());
}
}
}
之后,我尝试了这个方法,但对列表也没有任何影响:for(int c=0;c
我在StackOverflow中找到了这个解决方案,但它返回java.lang.IllegalStateExcture
Iterator<Map.Entry<String,String>> iter = liste_complete.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String,String> entry = iter.next();
for(Map.Entry<String,String> key : liste_matches.entrySet()){
if(key.getValue().equalsIgnoreCase(entry.getValue())){
iter.remove();
}
}
}
非常感谢你的提示。
我已经调试了代码,但不明白这个问题——我认为这确实是复杂输入数据的问题。
我没有通过键比较键。getKey()
但仅使用键
,这似乎会导致比较中出现问题。无论如何,我的代码运行时使用以下代码段:
for(Map.Entry<String,String> keyDelta : liste_Complete.entrySet()){
if(!liste.containsKey(keyDelta.getKey())){
delta_liste.put(String.valueOf(keyDelta), "");
}
}
AFAIK您不能从正在迭代的列表中删除元素。我建议你2个解决方案:
>
for worksheet1 row
for worksheet2 row
if(match)
liste_matches.add(...)
else
liste_non_matches.add(...)
这样,您就不必在事后删除元素。
问题内容: 这应该很容易,但是我很难过。基本上,我在matplotlib中有一个子图,每次调用一个函数时,我都会绘制一个六边形图,但是每次调用该函数时,都会得到一个新的颜色条,所以我真正想做的就是更新颜色条。不幸的是,这似乎不起作用,因为通过subplot.hexbin重新创建了附加了颜色条的对象。 我现在在这个烦人的地方,尝试完全删除颜色条轴,然后重新创建它。不幸的是,当我删除颜色条轴时,子图轴
我在这个问题上挣扎了一段时间,我似乎没有找到任何答案。 谢了。
我的代码有点纠结。我已经搜索并尝试了许多方法。我的目标是删除Firebase之前提供给我的应用程序的条目,Firebase数据来自嵌入式设备。我想替换android应用程序中的值。 Firebase工作正常,应用程序将显示Firebase提供的新值,但不会删除以前的条目。 我还有很多事情要做,但想在继续前进之前解决基础问题。 因此,OnChildChanged基本上会显示新的firebase条目,
问题内容: 我错误地 从Windows计算机中 删除了Java文件夹 。 现在我在各种插件以及所有插件中都遇到了问题,它要求我 下载最新的JRE 。当我尝试这样做时,它说 JRE已经存在 ,您是否要删除旧的JRE并安装新的JRE?我说是,然后给我错误“ 1723”。 简而言之, JRE不会被卸载 。 我重新安装了Java SDK,但是仍然无法正常工作。我再次卸载了Java SDK,并尝试卸载JRE
问题内容: 我目前正在使用Hibernate Envers。 如何删除审核表中与我要删除的实体相关的条目?我的实体与其他实体没有任何关系。 我发现必须在自定义侦听器的方法中执行此操作: 我已经阅读了文档,论坛以及许多内容,但我无法弄清楚。也许这是不可能的,我不知道。 有人做过吗? 问题答案: 好吧,对于那些想知道的人,我已经完成了50%。 感谢Hibernate Envers的创建者Adam Wa
问题内容: 我需要编写一个简单的函数,该函数将删除包含类对象的所有条目。我编写了函数,但是如果的大小大于1 ,则该函数将不起作用。 编辑#1 错误消息如下: 问题答案: 该代码无法编译。什么啊 无论如何,如果要在迭代时删除元素,则必须使用迭代器的remove方法进行操作: 不过,您的方法可以做到。更直接,更有效。
我在Java中有一个< code>HashMap: 我需要的是删除重复条目(“1”,1)[当键和值都重复时]。我搜索并只找到了“如何删除重复的键/值”。有人能帮忙吗?
我是使用Kafka的新手,我有一个问题。如果我知道主题、偏移量和分区,我可以只删除一条消息吗?如果没有,还有什么其他选择吗?