如果是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;
}
}
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;
}
}