3
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 つのリストの交差を含むリストを返すことです。私の質問は、これの時間の複雑さは何ですか? keepAll() メソッドの時間計算量はどのくらいですか? また、リストをセットに変換するときに時間がかかることはありますか?

4

1 に答える 1

2

興味深いトピックは、個々のメソッドの複雑さを測定することです。複雑さの一因となっているものがいくつかあります。

複雑さの測定方法はこちら

複雑さを計算する方法は非常に良いサイトです

于 2013-03-19T05:20:10.280 に答える