1

テーブル内の特定の行を検索する必要がある場合、ORM に従って、各行は私が信じるオブジェクトであると考えてください。私は JDBC に熱心に取り組んだわけではないので、一般的に、これらの POJO オブジェクトはどこで収集または保持されるのでしょうか? セットまたはリストで?

リスト対で要素を検索する複雑さを見つけようとしています。設定

私がやった事?

private void searchSet() {
        Set<String> names = new HashSet<>();
        names.add("srk");
        names.add("lastminute");
        names.add("monkey");
        for(String x:names){
            if(x.equals("monkey")){
                System.out.println("caught the name "+x);
            }
        }

}



private void searchList() {
    List<String> names = new ArrayList<>();
    names.add("srk");
    names.add("lastminute");
    names.add("monkey");
    for(String x:names){
        if(x.equals("monkey")){
            System.out.println("caught the name "+x);
        }
    }

}

次のアプローチを使用して、セットとリストの要素を検索するのにかかる時間を計算しています。

    long startTime,endTime,totalTime;
    startTime = System.nanoTime();
    endTime = System.nanoTime();
    totalTime = endTime - startTime;

今、私は以下の統計を持っています

System.out.println("Time taken to search an element in list : "+totalTime);//for list - 614324 
System.out.println("Time taken to search an element in set : "+totalTime);//for set - 757359

これらの統計に基づいて、セットよりもリスト内の要素を検索する方が速いと結論付けることができますか? 検索用にデータベース レコード オブジェクトを格納するのに適したコレクションはどれですか。リスト対セット内の要素を検索する複雑さは何ですか。一般的な意味で?

4

3 に答える 3

2

両方のコレクションに既にメソッドがcontain()指定されているのに、なぜ再びトラバースするのですか? リストの複雑さは一定O(n)であり、セットの複雑さO(1)は一定です。

于 2013-05-23T13:47:42.877 に答える