public static List<Integer> returnIntersection(List<Integer> a,List<Integer> b){
List<Integer> l1=new ArrayList<Integer>(a);
List<Integer> l2=new ArrayList<Integer>(b);
l1.retainAll(l2);//find intersection in l2
l1=removeDuplicates(l1);
return l1;}
public static List<Integer> removeDuplicates(List<Integer> l) {
Set<Integer> se=new HashSet<Integer>(l);
l.clear();
l=new ArrayList<Integer>(se);
return l;}
上面的代码是返回一个包含 2 个没有重复的列表交集的列表。我的问题是它的时间复杂度是多少?retainAll() 方法的时间复杂度是多少?将列表转换为集合时是否有任何耗时?