java list 比较相同的元素

来源:互联网 发布:爱福窝软件下载 编辑:程序博客网 时间:2024/05/29 06:58

    在List中有equal()方法,但是那只是对比相同的位置上的元素是否相同。

   为了达到两个list乱序状态下依然将含有完全一样的元素视为相等。需要新写一个方法:

    

import java.util.ArrayList;import java.util.Collections;import java.util.List;public class ListComp {private static List list1 = new ArrayList<String>();private static List list2 = new ArrayList<String>();/** * @param args */@SuppressWarnings("unchecked")public static void main(String[] args) {list1.add("Liang");list1.add("wiang");list2.add("wiang");list2.add("Liang");list2.add("wiang");// list1.removeAll(list2);System.out.println("list1 hash");System.out.println(list1.hashCode());System.out.println("list2 hash");System.out.println(list2.hashCode());if (compare(list1, list2)) {System.out.println("hello");} else {System.out.println("hello kity");}}public static <T extends Comparable<T>> boolean compare(List<T> a, List<T> b) {if (a.size() != b.size())return false;Collections.sort(a);Collections.sort(b);for (int i = 0; i < a.size(); i++) {if (!a.get(i).equals(b.get(i)))return false;}return true;}}

原创粉丝点击