Die Durchführung der Schnellste Suche - welche Kollektion soll ich verwenden?

Weiß ich:

  • Wenn Sie benötigen schnellen Zugriff auf Elemente über index, ArrayList sollte Wahl.
  • Wenn Sie benötigen schnellen Zugriff auf Elemente mit einem Schlüssel, verwenden HashMap.
  • Wenn Sie schnelle hinzufügen und entfernen von Elementen verwenden LinkedList (aber es hat eine sehr schlechte Suche nach performance).

Zur Durchführung der Schnellste Suche, die auf der Grundlage von gespeicherten Daten in einem collection-Objekt, das die Sammlung sollte ich verwenden?

Unten ist mein code:

    public void fillAndSearch(Collection<Student> collection) {
      if(collection!=null){
        for (int i=0; i<=10; i++) {
            Student student = new Student("name" + i, "id" + i);
            collection.add(student);
        }
      }
        //here We have to perform searching for "name7" or "id5",
        //then which implementation of collection will be fastest?
    }

class Student {
    String name;
    String id;

    Student(String name, String id) {
        this.name = name;
        this.id = id;
    }
} 
verwenden ArrayList, weil es die Suche auf der Grundlage der Indizierung
Sind Ihre Daten IMMER in der form von collection.get(i) = [name_i, id_i]? (mit dem gleichen Wert der i für den index, den Namen und die id)?
Beim suchen der schnelle Zugriff ist ur -, so HashMap oder ArrayList (denken Sie über die sortierte Liste und Zwiespalt). Aber in deinem Fall würde ich ein Exemplar einer HashMap<String, Student>, und anzeigen der id und dem Namen der Schüler, so finden sich Ihre Schüler in O(1) (wenn es keine hash-Kollision) !
Verwenden java.util.HashMap zum speichern der Objekte und die Verwendung der Schlüssel, d.h. der name oder die id, zwei Karten eigentlich mit Schlüssel als Namen andere mit Schlüssel als id
Sammlung.man(ich) immer ein Objekt von student, die Sammlung ist alles über,ich bin nicht in der Lage zu erreichen U richtig was U Fragen?

InformationsquelleAutor | 2015-05-19

Schreibe einen Kommentar