比较两个List里的值是否相等

来源:互联网 发布:医疗器械销售公司知乎 编辑:程序博客网 时间:2024/06/09 00:07

首相比较两个list是否相等,这两个list的size一定要相等,这个是先决条件

然后将这个两个list先排序一下,以方便后期比较

这里就需要用到Collections类里的sort排序方法
    public static <T extends Comparable<? super T>> void sort(List<T> list) {
        Object[] a = list.toArray();
        Arrays.sort(a);
        ListIterator<T> i = list.listIterator();
        for (int j=0; j<a.length; j++) {
            i.next();
            i.set((T)a[j]);
        }
    }

下面写一个工具类

/**     * @param firstList 第一个list参数     * @param scList    第二个list参数     * @return boolean  相等为true,否则为false     */    public static <T extends Comparable<T>> boolean twoListCompareUtil(List<T> firstList, List<T> scList) {          //首先判断这两个list的大小是否相等          if(firstList.size() != scList.size()){              return false;          }          //如果两个list大小相等,其中可能为0,所以排除为0的这种情况          if(firstList.size()>0 && scList.size()>0){            //如果相等,对两个list分别排序以方便后期比较              Collections.sort(firstList);              Collections.sort(scList);              //循环遍历两个几个取值比较是否相同,不同则返回false              for(int i=0;i<firstList.size();i++){                    //取值比较是否相同                    if(!firstList.get(i).equals(scList.get(i))){                         return false;                    }              }              return true;          }else{              return false;          }              }

下面写一个测试类:

public static void main(String[] args) {  List<Integer> list1 = new ArrayList<>();  list1.add(1);   list1.add(2);  list1.add(3);  list1.add(4);  List<Integer> list2 = new ArrayList<>();  list2.add(3);   list2.add(4);  list2.add(2);  list2.add(1);  System.out.println("list1, list2比较结果如下:");  System.out.println(twoListCompareUtil(list1, list2));  List<Integer> list3 = new ArrayList<>();  list1.add(1);   list1.add(2);  list1.add(3);  list1.add(5);  List<Integer> list4 = new ArrayList<>();  list2.add(3);   list2.add(4);  list2.add(2);  list2.add(1);  System.out.println("list3, list4比较结果如下:");  System.out.println(twoListCompareUtil(list3, list4));  }

测试结果如下:

list1, list2比较结果如下:truelist3, list4比较结果如下:false



原创粉丝点击