Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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,我对java非常陌生,我有两个列表。当我这样做时: list1.equals(list2) 正在给我false。即使清单是一样的 这是检查相等性的正确方法吗?您可以使用Apache的: 等质量论者 根据中的相等合同测试两个列表的值相等 List.equals(java.lang.Object) 当您无法扩展列表时,此方法对于实现列表非常有用 抽象列表。该方法使用集合实例来启用其他 集合类型以使用列表实现算法 相关文本(稍作解释,因为这是一种静态方法) 是: 比较两个列表对象是否相等。仅当且仅当

我对java非常陌生,我有两个
列表
。当我这样做时:

list1.equals(list2)
正在给我
false
。即使清单是一样的

这是检查相等性的正确方法吗?

您可以使用Apache的:

等质量论者

根据中的相等合同测试两个列表的值相等 List.equals(java.lang.Object)

当您无法扩展列表时,此方法对于实现列表非常有用 抽象列表。该方法使用集合实例来启用其他 集合类型以使用列表实现算法

相关文本(稍作解释,因为这是一种静态方法) 是:

比较两个列表对象是否相等。仅当且仅当返回true 如果两个列表的大小相同,并且所有对应的 两个列表中的元素相等。(两个元素e1和e2相等 换句话说,如果(e1==null?e2==null:e1.equals(e2)),则有两个列表 定义为相等,如果它们在同一行中包含相同的元素 秩序。此定义确保equals方法正常工作 跨列表接口的不同实现。注:该 如果在过程中修改列表,则此方法的行为未定义 这等于比较

您可以使用Apache的:

等质量论者

根据中的相等合同测试两个列表的值相等 List.equals(java.lang.Object)

当您无法扩展列表时,此方法对于实现列表非常有用 抽象列表。该方法使用集合实例来启用其他 集合类型以使用列表实现算法

相关文本(稍作解释,因为这是一种静态方法) 是:

比较两个列表对象是否相等。仅当且仅当返回true 如果两个列表的大小相同,并且所有对应的 两个列表中的元素相等。(两个元素e1和e2相等 换句话说,如果(e1==null?e2==null:e1.equals(e2)),则有两个列表 定义为相等,如果它们在同一行中包含相同的元素 秩序。此定义确保equals方法正常工作 跨列表接口的不同实现。注:该 如果在过程中修改列表,则此方法的行为未定义 这等于比较

您可以使用Apache的:

等质量论者

根据中的相等合同测试两个列表的值相等 List.equals(java.lang.Object)

当您无法扩展列表时,此方法对于实现列表非常有用 抽象列表。该方法使用集合实例来启用其他 集合类型以使用列表实现算法

相关文本(稍作解释,因为这是一种静态方法) 是:

比较两个列表对象是否相等。仅当且仅当返回true 如果两个列表的大小相同,并且所有对应的 两个列表中的元素相等。(两个元素e1和e2相等 换句话说,如果(e1==null?e2==null:e1.equals(e2)),则有两个列表 定义为相等,如果它们在同一行中包含相同的元素 秩序。此定义确保equals方法正常工作 跨列表接口的不同实现。注:该 如果在过程中修改列表,则此方法的行为未定义 这等于比较

您可以使用Apache的:

等质量论者

根据中的相等合同测试两个列表的值相等 List.equals(java.lang.Object)

当您无法扩展列表时,此方法对于实现列表非常有用 抽象列表。该方法使用集合实例来启用其他 集合类型以使用列表实现算法

相关文本(稍作解释,因为这是一种静态方法) 是:

比较两个列表对象是否相等。仅当且仅当返回true 如果两个列表的大小相同,并且所有对应的 两个列表中的元素相等。(两个元素e1和e2相等 换句话说,如果(e1==null?e2==null:e1.equals(e2)),则有两个列表 定义为相等,如果它们在同一行中包含相同的元素 秩序。此定义确保equals方法正常工作 跨列表接口的不同实现。注:该 如果在过程中修改列表,则此方法的行为未定义 这等于比较


这是正确的方法。你的名单和你说的不一样。试着打印它们以便目视检查。

这是正确的方法。你的名单和你说的不一样。试着打印它们以便目视检查。

这是正确的方法。你的名单和你说的不一样。试着打印它们以便目视检查。

这是正确的方法。你的名单和你说的不一样。尝试打印它们以进行目视检查。

要使两个列表相等,它们需要具有相同的顺序。我只能假设,在考虑相等性时,您希望忽略两个列表的顺序

对于忽略顺序的比较,可以比较两个
Map
实例(其中
Integer
是每个字符串的计数)

例如:

public boolean isEqualIgnoreOrder(列表l1、列表l2){
如果(l1.size()!=l2.size()){
返回false;
}
Map m1=createMap(l1);
Map m2=createMap(l2);
返回m1等于(m2);
}
受保护映射createMap(列表){
Map Map=newhashmap();
对于(T项:列表){
整数prevCount=map.get(项);
put(prevCount==null?1:prevCount+1);
}
返回图;
}

这种类型的收集被称为包。更多讨论

要使两个列表相等,它们需要具有相同的顺序。我只能假设,在考虑相等性时,您希望忽略两个列表的顺序

对于忽略顺序的比较,可以比较两个
Mappublic static boolean isEqualList(java.util.Collection list1,
                                  java.util.Collection list2)
public <T> boolean isEqualIgnoreOrder(List<T> l1, List<T> l2) {
   if (l1.size() != l2.size()) {
      return false;
   }
   Map<T, Integer> m1 = createMap(l1);
   Map<T, Integer> m2 = createMap(l2);
   return m1.equals(m2);
}

protected <T> Map<T, Integer> createMap(List<T> list) {
   Map<T, Integer> map = new HashMap<T, Integer>();
   for (T item : list) {
      Integer prevCount = map.get(item);
      map.put(prevCount == null ? 1 : prevCount + 1);
   }
   return map;
}