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
    }
}
相关推荐
Byron Loong6 小时前
【调试】Dump 文件分析的完整流程
windows
Geoking.7 小时前
VSCode 安装 Claude Code 插件 + ccswitch 配置 DeepSeek API 完整教程(Windows 新手向)
ide·windows·vscode
潘达斯奈基~8 小时前
Windows 下 Claude Code使用 Agent Teams 配置教程
windows
happymaker062611 小时前
Spring框架学习日记——DAY02(依赖注入的方式)
windows
honder试试11 小时前
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
windows·elasticsearch·jenkins
IT里的交易员12 小时前
【系统】Windows 安装 uv
windows·uv
我不是立达刘宁宇14 小时前
windows密码操作
windows
Royzst14 小时前
一、集合概述(前置基础)
开发语言·windows·python
时光追逐者14 小时前
一款基于 C# 开发的 Windows 10/11 系统增强工具,精简、优化、定制一站完成!
开发语言·windows·c#·.net
liuhuizuikeai15 小时前
菜品抽奖活动MFC+服务端
c++·windows·mfc