项目开发过程中经常会出现A集合与B集合中数据对比取相同数据的情况。
最简单的实现方法如下:
//List<T> A = new ArrayList<T>();
//List<T> B = new ArrayList<T>();
for(int i = 0;i<A.size();i++){
for(int j = 0;j<B.size();j++){
if(A.get(i).equals(B.get(j))){
// do sth.
break;
}
}
}
对于上述的方法来说,如果在数据量很大的情况下,会使循环次数倍增,一般开发中对于此问题会将内层的for替换成Map,代码如下:
//List<T> A = new ArrayList<T>();
//List<T> B = new ArrayList<T>(); ==> Map<String,T>
for(int i = 0;i<A.size();i++){
if(B.containsKey(A)){
// do sth.
}
}
现请教各位在实际项目开发中是否还有其他比较好的实现方法,谢谢。