Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 检查是否有两个列表<;E>;有一些单一的共同元素_Java_List_Contains - Fatal编程技术网

Java 检查是否有两个列表<;E>;有一些单一的共同元素

Java 检查是否有两个列表<;E>;有一些单一的共同元素,java,list,contains,Java,List,Contains,我试图检查两个列表是否有某个公共元素。我尝试过不同的方法,但结果总是错误的。到目前为止,我正在使用包含(对象)的方法: private void setImportedArea参数(EList exitingAreas){ EList importedAreaPoints=importedArea.getPoly().getPoints(); 用于(EArea现有区域:现有区域){ EList existingAreaPoints=existingArea.getPoly().getPoints

我试图检查两个列表是否有某个公共元素。我尝试过不同的方法,但结果总是错误的。到目前为止,我正在使用包含(对象)的方法:

private void setImportedArea参数(EList exitingAreas){
EList importedAreaPoints=importedArea.getPoly().getPoints();
用于(EArea现有区域:现有区域){
EList existingAreaPoints=existingArea.getPoly().getPoints();
if(导入的AreaPoints.contains(现有的AreaPoints)){
importedArea.setImportChoice(eimporteAchoiceEnum.REPLACE);
}
else if(importedAreaPoints.size()>=多边形点最大值){
importedArea.setImportChoice(EIMPorteAchoiceEnum.TO_多点);
}
}
}
EList importedAreaPoints和existingAreaPoints具有完全相同的元素

进口区域点
[com.samu.domain。EPoint@45f5fd38(lat:-5.580874037404866,lon:35.94777225005756),com.samu.domain。EPoint@3dd4c25c(lat:-5.286985080169555,lon:35.97486383222591),com.samu.domain。EPoint@18a80682(lat:-5.286985080169555,lon:35.71115171259456),com.samu.domain。EPoint@6c992dd3(纬度:-5.573099909384,经度:35.68508505325236),com.samu.domain。EPoint@6ef0145(纬度:-5.580874037404866,经度:35.94777225005756)]

现有区域点
[com.samu.domain。EPoint@2d5caf46(lat:-5.580874037404866,lon:35.94777225005756),com.samu.domain。EPoint@2163354d(lat:-5.286985080169555,lon:35.97486383222591),com.samu.domain。EPoint@2dd124cc(lat:-5.286985080169555,lon:35.71115171259456),com.samu.domain。EPoint@66e5987d(纬度:-5.573099909384,经度:35.68508505325236),com.samu.domain。EPoint@2e8b3d78(纬度:-5.580874037404866,经度:35.94777225005756)]

EList从java.util.List扩展而来,您有:

if(importedAreaPoints.contains(existingAreaPoints))
你应该

if(importedAreaPoints.contains(existingArea))
第一个是检查它是否包含list objec而不是元素

要检查的另一件事是
.equals(对象0)
方法,以确保逻辑正确。

您有:

if(importedAreaPoints.contains(existingAreaPoints))
你应该

if(importedAreaPoints.contains(existingArea))
第一个是检查它是否包含list objec而不是元素


要检查的另一件事是
.equals(Object 0)
方法,以确保逻辑正确。

您应该覆盖EPoint类的equals和hashCode,现在您正在检查对象是否相同。而这个对象是不同的,你可以在@6ef0145->对象的地址上看到它,它们都是不同的

(对不起,德国链接)


您应该比较long和lat是否相同

您应该覆盖EPoint类的equals和hashCode,现在您正在检查对象是否相同。而这个对象是不同的,你可以在@6ef0145->对象的地址上看到它,它们都是不同的

(对不起,德国链接)


您应该比较long和lat是否相同

如果您只想检查是否存在公共元素,则可以使用
retainal(集合c)
方法。考虑到
listAlpha
listBeta
是两个
List

List commonItems=新的ArrayList(listAlpha);
通用项目。保留(列表Beta);

现在
commonItems
只包含那些对
listAplha
listBeta
通用的项目,如果您只想检查是否存在通用元素,那么可以使用
Retainal(集合c)
方法。考虑到
listAlpha
listBeta
是两个
List

List commonItems=新的ArrayList(listAlpha);
通用项目。保留(列表Beta);

现在,
commonItems
只包含那些对
listAplha
listBeta
通用的项目。查找通用元素的过程基于两个或多个元素的比较。如果您定义了自己的类型(EArea、EPoint),您必须关心equals和hashCode方法,因为这是您编写对象通用性逻辑的地方(更多信息:)。重写这些方法时,可以应用Collections框架提供的任何操作或实现自己的解决方案。

查找公共元素的过程基于两个或多个元素的比较。如果您定义了自己的类型(EArea、EPoint),您必须关心equals和hashCode方法,因为这是您编写对象通用性逻辑的地方(更多信息:)。当您重写这些方法时,您可以应用Collections框架提供的任何操作或实现您自己的解决方案。

这是否完全解决了问题?如果是这样的话,我就不会投反对票。然而,在这种情况下,由于一个不太可能帮助他人的简单错误,问题可能应该结束。我也没有得到否决票,实际上人们应该在否决票时发表评论。我正在尝试使用我收到的所有信息来找到解决方案。在那之后,我将投票表决你的答案。谢谢。在我看来,似乎您正在尝试为另一个列表中存在的每个元素设置一个值。在这种情况下,我所说的是正确的,
containsAll
将不起作用,
Collections.disjoint
。这是否完全解决了问题?如果是这样的话,我就不会投反对票。然而,在这种情况下,由于一个不太可能帮助他人的简单错误,问题可能应该结束。我也没有得到否决票,实际上人们应该在否决票时发表评论。我正在尝试使用我收到的所有信息来找到解决方案。在那之后,我将投票表决你的答案。谢谢。在我看来,似乎您正在尝试为另一个列表中存在的每个元素设置一个值。在这种情况下,我所说的是正确的,
containsAll
将不起作用,
Collections.disjoint
。如果(!