java使用泛型判断两个List是否相等

复制代码
package com.ping;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class TestMain {

    public static  <T extends Comparable<T>> boolean isEqualList(List<T> list1, List<T> list2){
        if(list1 == null && list2 == null) {
            return true;
        }
        if(list1 == null || list2 == null) {
            return false;
        }
        if(list1.size() != list2.size()) {
            return false;
        }
        list1 = new ArrayList<T>(list1);
        list2 = new ArrayList<T>(list2);

        Collections.sort(list1);
        Collections.sort(list2);

        return list1.equals(list2);
    }


    public static void main(String[] args) {
        List<Integer> list1 = Arrays.asList(1, 2, 3, 3, 4);
        List<Integer> list2 = Arrays.asList(3, 2, 1, 4, 3);
        List<Integer> list3 = Arrays.asList(1, 2, 3, 4);
        List<Integer> list4 = Arrays.asList(1, 2, 3, 4, 5);

        List<String> list5 = Arrays.asList("张三","李四", "王五", "赵六");
        List<String> list6 = Arrays.asList("张三","李四", "李四","王五");

        System.out.println(isEqualList(list1, list2)); // true
        System.out.println(isEqualList(list1, list3)); // false
        System.out.println(isEqualList(list1, list4)); // false

        System.out.println(isEqualList(list5, list6)); // false
    }
}
相关推荐
Bruce_Liuxiaowei16 分钟前
文章题目:利用Adobe Flash Player漏洞:一次针对Windows XP的渗透测试实验
windows·adobe·渗透测试·kali linux·浏览器插件漏洞
CAir22 小时前
openssl编译
windows·编译·openssl
_oP_i4 小时前
winform判断Windows 是否运行在 macOS 系统的虚拟机
windows·macos·winform
步、步、为营7 小时前
C# 与 Windows API 交互的“秘密武器”:结构体和联合体
windows·c#·交互
Narutolxy7 小时前
macOS 使用 FreeRDP 远程访问 Windows:完整指南20250109
windows·macos
程序员大金8 小时前
基于Django的个性化餐饮管理系统
vue.js·windows·后端·python·pycharm·django·postman
Smile_zxx8 小时前
windows 下npm 使用 n 切换node版本
前端·windows·npm
码力全開8 小时前
C 语言奇幻之旅 - 第16篇:C 语言项目实战
c语言·开发语言·数据库·windows·vscode·vim·visual studio
沉香GG9 小时前
使用R包Corrplot绘制相关性图
windows·r语言·学习方法
MasterNeverDown10 小时前
spring boot Linux dockerfile与Windows dockerfile区别
linux·windows·spring boot