1

私が使用するアイテムを追加するために

public void add(Object s) {
    list.add(s);
}

私が使用するアイテムを削除するために

public void remove(Object s) {
    list.remove(s);
}

ドット演算子を使用して組み込みのAPIを検索LinkedListすると、検索機能を示唆するものは何も表示されません。でしょうcontainsか?

4

6 に答える 6

2

はい、LinkedList APIのcontainstrueメソッドは、検索要素が含まれている場合に返されます。

于 2012-05-14T05:15:54.353 に答える
2

見つかった実際のインスタンスにアクセスできるように、アイテムがリストのどこに配置されているかを知りたいように思われるので、アイテムindexOfを見つけてget、見つかったインスタンスを返すために使用する必要があります。この2つを組み合わせる方法はありません。

List list = ...
Object item = ...
int index = list.indexOf(item);
if (index > 0) {
    Object found = list.get(index);
    ...
}
于 2012-05-14T05:42:56.720 に答える
1

はい、検索にはこのcontains方法を使用します。ただし、LinkedListの検索にはO(n)時間がかかることに注意してください。つまり、時間はリストのサイズに直線的に依存するため、リストが大きく、多くの検索を行う場合は、他のデータを使用することをお勧めします。構造。たとえば、次のようにリストを初期化する必要があります。

Collection something = new LinkedList();

次に、検索操作のパフォーマンスがプログラムに悪影響を及ぼしていることがわかった場合は、代わりに次のようにします。

Collection something = new LinkedHashSet();

より洗練された検索には、リストやその他のコレクションの代わりにマップを使用する必要がありますが、これはまったく異なるデータ構造です。

于 2012-05-14T05:16:27.193 に答える
0

はい、containsです。より洗練されたものが必要な場合は、独自の実装を作成するLinkedListか、いくつかのユーティリティ関数を考え出す必要があります。

于 2012-05-14T05:13:20.853 に答える
0

contains(Object)確かにあなたが探しているものです。Collections.binarysearch(List, T)リストが昇順でソートされている場合にも使用できます。

于 2012-05-14T05:16:58.987 に答える
0

次のコードサンプルはあなたに理解させるでしょう

    // Assuming that we java imported java.util.LinkedList........

    LinkedList ll =new LinkedList();
    ll.add("red");
    ll.add("blue");
    ll.get(0);  // gets the first element.........
    ll.getFirst(); // returns the first element..
    ll.getLast(); // returns the last element....
    int position = ll.indexOf("red");        

    boolean status;
    status= ll.contains("red"); // returns true if list contains red or returns false....
于 2012-06-16T18:11:37.383 に答える