如何在 Java 中比较两个 ArrayList2024年9月5日 | 阅读 6 分钟 在 Java 中比较两个 ArrayList 有以下几种方法
Java equals() 方法Java List 接口的 equals() 方法将指定的对象与列表进行相等性比较。它覆盖了 Object 类的 equals() 方法。 语法 此方法接受一个 object 作为参数,用于与列表进行相等性比较。如果指定的对象等于列表,则返回 true,否则返回 false。 示例 在下面的示例中,我们创建了两个 ArrayList:firstList 和 secondList。使用 equals() 方法比较两个列表,返回 true。我们还在 secondList 中添加了一个元素,以使 firstList 和 secondList 之间产生差异。现在,如果我们执行比较,它将返回 false。 输出 [Apple, Pears, Guava, Mango] [Apple, Pears, Guava, Mango] true false Java removeAll() 方法(查找缺失的元素)Java ArrayList 类的 removeAll() 方法用于移除列表中所有包含在指定集合中的元素。它覆盖了 AbstractCollection<E> 类的 removeAll() 方法。 语法 此方法接受一个 Collection 作为参数,其中包含要从此列表中移除的元素。如果此列表因调用而发生更改,则返回 true。 示例 在下面的示例中,我们创建了两个 ArrayList:firstList 和 secondList。removeAll() 方法移除了 firstList 的所有元素,因为这些元素也存在于 secondList 中,除了 **Papaya**。因此,**Papaya** 是 firstList 中的缺失元素。因此,它返回 **Papaya**。如果两个列表具有相同的元素,该方法将返回一个**空列表 []**。 输出 [Papaya] 让我们看另一个 removeAll() 方法的示例,该示例返回 firstList 中不存在于 secondList 中的元素。 示例 输出 First array list: [12, 4, 67, 90, 34] Second array list: [12, 4, 67, 0, 34] Un-common element of the first list: [90] Java retainAll() 方法(返回两个列表中的共同元素)Java ArrayList 类的 retainAll() 方法仅保留列表中也存在于其他列表中的元素。它覆盖了 AbstarctCollection<E> 类的 retainAll() 方法。 语法 此方法接受一个 Collection 作为参数,其中包含要在列表中保留的元素。如果此列表因调用而发生更改,则返回 true。 示例 在此示例中,我们使用 Arrays 类的 asList() 方法创建了两个 ArrayList:firstList 和 secondList。asList() 方法返回指定数组的列表视图。 输出 First arraylist: [M, W, J, K, T] Second arraylist: [M, W, E, K, T] Common elements in both list: [M, W, K, T] Java ArrayList.contains() 方法Java ArrayList.contains() 方法用于比较两个不同 ArrayList 的元素。Java ArrayList.contains() 方法覆盖了 AbstrarctCollection<E> 类的 contains() 方法。 语法 此方法解析要检查其在列表中是否存在的一个元素。如果找到匹配项,则返回 true,否则返回 false。 示例 在此示例中,我们创建了两个 String 类型的 ArrayList:firstList 和 secondList。我们使用 contains() 方法比较了这些 ArrayList。如果 firstList 的元素与 secondList 的元素匹配,则返回 Yes 并将此值存储到 thirdList 中。同样,如果元素不匹配,则返回 No。 输出 [Yes, No, No] Java contentEquals() 方法Java contentEquals() 方法比较 String 和 StringBuffer,并返回一个 boolean 值。它属于 String 类。 语法 此方法接受 StringBuffer 作为参数,用于与 String 进行比较。如果 String 表示与指定的 StringBuffer 相同的字符序列,则返回 true,否则返回 false。 示例 在此示例中,我们创建了两个 String 类型的 ArrayList:firstList 和 secondList。我们创建了一个静态方法 compareList(),该方法将两个 ArrayList ls1 和 ls2 作为参数,并返回一个 boolean 值。该方法将列表转换为 String。contentEquals() 方法将 String 与指定的 StringBuffer 进行比较。 我们在 secondList 中添加了另一个元素以创建两个列表之间的差异,然后再次调用 compareList() 方法,该方法返回 false。 输出 When Lists are same: true When Lists are not same: false Java Stream 接口Java Stream 是一个接口。它属于 java.util 包。它提供了一个 filter() 方法,用于根据给定元素过滤流元素。这是一个**中间**操作。 语法 此方法接受 Predicate(函数式接口)作为参数,并返回一个包含结果元素的新流。 collect() 方法在以下示例中使用的另一个方法是 Stream 接口的 collect() 方法。 它使用 Collector 对该流的元素执行可变归约操作。Collector 封装了用作 collect(Supplier, BiConsumer, BiConsumer) 参数的函数。它允许**重用**收集策略和组合收集操作。这是一个**终端**操作。 语法 Collectors.toList() 方法toList() 是 Collectors 类的静态方法。它属于 java.util.Stream.Collectors 类。 语法 其中 T 是元素的类型。它返回一个 Collector,该 Collector 以无序(或遇到的)顺序将所有输入元素收集到一个 List 中。 示例 在以下示例中,我们创建了两个 String 类型的 ArrayList:firstList 和 secondList。filter() 方法返回一个 List,其中包含同时存在于两个 List 中的共同元素。 输出 First List: [Java, Python, Ruby, Go] Second List: [Java, Python, Ruby, Go, Perl] Common elements: [Java, Python, Ruby, Go] 下一个主题Java 教程 |
我们请求您订阅我们的新闻通讯以获取最新更新。