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
    }
}
相关推荐
AimerDaniil9 小时前
windows 根据端口号关闭进程脚本
windows
Hi2024021710 小时前
为QML程序添加启动Logo:提升用户体验
windows·qt·ui·人机交互·qml·启动logo
love530love13 小时前
【笔记】xFormers版本与PyTorch、CUDA对应关系及正确安装方法详解
人工智能·pytorch·windows·笔记·python·深度学习·xformers
加上音乐15 小时前
windows—wsl2—docker配置代理以push/pull
windows·docker·容器
2501_9160074717 小时前
如何在 Windows 电脑上调试 iOS 设备上的 Safari?完整方案与实战经验分享
android·windows·ios·小程序·uni-app·iphone·safari
IDOlaoluo19 小时前
ArrowDL BT下载工具v4.2.1中文版安装教程(附详细步骤+下载方法)
windows
zt1985q19 小时前
外网访问项目研发管理软件 codes
运维·服务器·windows·网络协议·tcp/ip
不会kao代码的小王20 小时前
零基础也能搭博客?
linux·windows·后端
一车小面包20 小时前
MCP-stdio通信
windows
多多*20 小时前
Java复习之范型相关 类型擦除
windows