* 比较两个List集合是否相等
*
注:1. 如果一个List的引用为null
,或者其包含的元素个数为0,那么该List在本逻辑处理中都算作空;
*
2. 泛型参数E涉及到对象,所以需要确保正确实现了对应对象的equal()
方法。
* @param list1
* @param list2
* @return
public
static
<
E
>
boolean
isListEqual
(
List
<
E
>
list1
,
List
<
E
>
list2
)
{
if
(
list1
==
list2
)
{
return
true
;
if
(
(
list1
==
null
&&
list2
!=
null
&&
list2
.
size
(
)
==
0
)
||
(
list2
==
null
&&
list1
!=
null
&&
list1
.
size
(
)
==
0
)
)
{
return
true
;
if
(
list1
.
size
(
)
!=
list2
.
size
(
)
)
{
return
false
;
if
(
!
list1
.
containsAll
(
list2
)
)
{
return
false
;
return
true
;
大厂面试题:如何
比较
两个
List
是否
相等
背景1、直接使用equals()
比较
2、将
list
排序之后再
比较
3、使用Sets / contains()
比较
list
4、使用Apache Commons工具类结论
最近一位同学在面试种被问到如何
比较
两个
list
是否
相等
?
Java
中的
list
是按自然顺序排列的。因此,如果
两个
list
包含相同顺序的完全相同的元素,则认为它们是
相等
的,如果忽略元素顺序怎么样去
比较
两个
列表?
1、直接使用equals()
比较
众所周知,
两个
列表具有完全相同的元素并且具有完全相同的
*
比较
两个
List
集合
是否
相等
* 注:1. 如果一个
List
的引用为null,或者其包含的元素个数为0,那么该
List
在本逻辑处理中都算作空;
* 2. 泛型参数E涉及到对象,所以需要确保正确
实现
了对应对象的equal()方法。
* @param
list
1
* @param
list
2
* @return
public static <E>boolean is
List
Equal(
List
<E>
list
1,
List
<E>
list
2).
比较
两个
list
集合
是否
相同
1.主要
比较
两个
list
中的元素,以及
list
的长度
2.
list
集合
是有序的,并且
list
集合
里的元素可以重复,因为该
集合
体系有索引
3.所以,
list
集合
里元素可能有相同的,并且顺序可能不一样
第一种
比较
方法
下面展示一些 内联代码片。
package com.lrc.
list
;
import
java
.util.Array
List
;
import
java
...
最近做的一个项目,需要校验
两个
List
是否
相等
的问题,我们看看如何
比较
两个
数组
相等
。数组是一个连续的内存空间,所以一般来说,
两个
数组
相等
,就是意味着他们有相同的长度,相同的元素,以及相同的顺序。我们看看JDK的Arrays.equals()
实现
就一目了然了。
public static boolean equals(int[] a, int[] a2) {
if (a==a2) re...
```
java
List
<Integer>
list
1 = Arrays.as
List
(1, 2, 3);
List
<Integer>
list
2 = Arrays.as
List
(1, 2, 3);
boolean isEqual =
list
1.stream().allMatch(
list
2::contains) &&
list
2.stream().allMatch(
list
1::contains);
if (isEqual) {
System.out.println("
两个
List
对象
集合
相等
");
} else {
System.out.println("
两个
List
对象
集合
不
相等
");
这段代码会输出"
两个
List
对象
集合
相等
"。