比较两集合(list/set..)元素是否相等(只要 List 含有相同元素(String Type)就可以,允许重复)

如果是list则 转 list --> set

HashSet, TreeSet 均可以实现元素唯一,以便比较。但前者元素无序,故速度快。 后者元素有序,如需二分查找之类算法有优势。

具体代码:

package com.nicekevin.test;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class CompareList {

  public static void main(String[] args) throws Exception {
//    Set<String> set1 = new TreeSet<String>();
//    Set<String> set2 = new TreeSet<String>();
    Set<String> set1 = new HashSet<String>();
    Set<String> set2 = new HashSet<String>();
    set1.add("aa");
    set1.add("aa");
    set1.add("bb");
    set1.add("cc");
    set1.add("ca");
  
    set2.add("bb");
    set2.add("aa");
    set2.add("cc");
    set2.add("ca");
  
    Iterator it1 = set1.iterator();
    while (it1.hasNext()) {
      System.out.print(it1.next().toString() + "\t");
    }
    System.out.println();
  
    Iterator it2 = set2.iterator();
    while (it2.hasNext()) {
      System.out.print(it2.next().toString() + "\t");
    }
    System.out.println();
  
    System.out.println("kaka = " + compareSet(set1, set2));
  }

  public static boolean compareSet(Set set1, Set set2) throws Exception {
    if(set1.size() != set2.size()) {
      return false;
    }  
    Iterator it1 = set1.iterator();
    while(it1.hasNext()) {
      if (!set2.contains(it1.next().toString())) {
        return false;
      }
    }  
    return true;
  }
}

猜你喜欢

转载自nicekevin.iteye.com/blog/2272133