Liste schneller durchsuchen

DaBe1812

Bekanntes Mitglied
Hi, ich habe aktuell ein kleines Performance-Problem. Bin aber auch bereit komplett andere Ansätze zu probieren.
Folgende Methode dauert viel zu lange:
Java:
    private void setAbfragenList() {
        List<String> refAbfragen = new ArrayList<>();
        for (ResponseTime rt : responseTimes) {
            ResponseTimeQuery query = rt.getQuery();
            if (query == null) {
                continue;
            }
            if (!refAbfragen.contains(query.getName())) {
                refAbfragen.add(query.getName());
            }
        }
    }
Ich habe eine Liste von Datenbankobjekten responseTimes. In der sind 18500 Datensätze. Diese haben (eigentlich) alle eine ResponseTimeQuery query, was wiederum auch eine Datenbankentität ist. Das erstellen meine Liste von Strings dauert aktuell 318 Sekunden. Ich denke das Hauptproblem ist das Holen des Namens der Suche, weil er schätzungsweise dafür jedes Mal eine Datenbankverbindung aufbaut.

Ich habe schon über Streaming nachgedacht, ob man damit evtl. erst alle unique ResponseTimeQuery query aus der Liste holt und dann nur noch die Namen in einer Liste collecten lässt, damit er evtl. nicht über eine DB-Verbindung geht, sondern diese nur für die letztendlich 4 -5 Werte in der Liste aufbaut.
Allerdings versuche ich mich gerade mehr ins Streaming zu fuchsen, aber ich finde keine Seite, die es mal so richtig schön erklärt. Aktuell bin ich froh darum, wenn ich eine Zeile Code erzeuge, die funktioniert und mir IntelliJ im Anschluss sagt, dass man das aber noch schöner machen könnte.

Letztendlich befülle ich mit der Liste ein Dropdownfeld in einer Primefaces 14 Tabelle als Filter für die Spalte. Also, falls es dafür eine bessere vielleicht eingebaute Möglichkeit gäbe, wäre ich natürlich auch dankbar.
 

KonradN

Super-Moderator
Mitarbeiter
Also wenn ich das richtig verstehe, dann willst Du in refAbfragen alle getName() haben ohne doppelte Einträge.

Dann wäre denkbar, dies einfach per Set zu machen.

Andere Möglichkeiten zur Optimierung:
a) ggf. eine bessere Abfrage, die das direkt aus der Datenbank zieht statt über ganz viele einzelne Abfragen.
b) Statt einem Set könnten auch andere Datentype interessant sein. Hier ist aber die Frage, was Du mit den Daten später noch machen willst.
 

DaBe1812

Bekanntes Mitglied
Also, ja, du verstehst es richtig.
a) meinst du quasi dieselbe Abfrage, die ich zur Erzeugung der eigentlichen Liste verwende, nur mit nur einem Ergebnisfeld und das dann mit Distinct?
b) Ich brauche die Liste als Filter auf eine Tabelle im Frontend:
 

KonradN

Super-Moderator
Mitarbeiter
Dann versuch evtl. erst einmal, ob es schon ausreicht das zu ändern auf:
Set<String> refAbfragen = new HashSet<>();
 

DaBe1812

Bekanntes Mitglied
Ich hab es jetzt ganz anders gelöst und bin auf 21ms runter:
Ich frage die komplette Tabelle ResponseTimeQuery ab, da sind aktuell fünf Datensätze drin und packe die in die Liste. Wenn jemand tatsächlich eine Zeile auswählen sollte, die im Ergebnis nicht enthalten ist, dann bekommt er eben 0 Ergebnisse. Ich denke, da überwiegt der Geschwindigkeitsvorteil.
Ärgerlich ist, dass ich für die Tabellendaten eine schnellere Abfrage gefunden habe, aber mit der Abfrage kann man die Tabelle an den ENUMs nicht mehr filtern.
Bin noch am überlegen, ob ich das hier nochmal zur Prüfung rein gebe, oder direkt bei Primefaces eine Prüfung starte, siehr für mich nämlich nach einem Bug aus, wenn die Tabelle mit dem einen Datenset filterbar ist und mit einem anderen auf Fehler läuft.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Schneller Zugriff auf Liste mit sortierten Flaechen..? Java Basics - Anfänger-Themen 7
A Wort-Liste importieren Java Basics - Anfänger-Themen 11
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
R Liste und Arrays Java Basics - Anfänger-Themen 12
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
M Verkettete Liste Java Basics - Anfänger-Themen 1
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
E Suchfunktion in einer Liste Java Basics - Anfänger-Themen 39
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
R einfach verkettete Liste Java Basics - Anfänger-Themen 1
R einfach verkettete Liste Java Basics - Anfänger-Themen 12
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
B GUI extension mit einer Liste verbinden Java Basics - Anfänger-Themen 1
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
M Java Liste streamen Java Basics - Anfänger-Themen 10
AmsananKING Aussortierung einer Liste Java Basics - Anfänger-Themen 8
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
S Kann nicht auf die Liste zugreifen mit der Methode!? Java Basics - Anfänger-Themen 3
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
I Liste gruppieren nach Monat? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
Gaudimagspam Linked Liste Java Basics - Anfänger-Themen 4
Z Liste umkehren Java Basics - Anfänger-Themen 1
S Eine Liste kopieren Java Basics - Anfänger-Themen 13
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
J Element aus Liste nehmen Java Basics - Anfänger-Themen 3
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M QuickSort und Liste Java Basics - Anfänger-Themen 6
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Koordinate in Liste suchen Java Basics - Anfänger-Themen 20
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
M Array liste Verdrehen Java Basics - Anfänger-Themen 8
A Verkettete Liste Java Basics - Anfänger-Themen 2
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
S IndexOutOfBoundsException beim hinzufügen eines Elements zu einer Liste Java Basics - Anfänger-Themen 11
B Liste sortieren? Java Basics - Anfänger-Themen 4
O Anonyme Klasse einer Liste erstellen Java Basics - Anfänger-Themen 7
B SWAP List; Liste neu anordnen Java Basics - Anfänger-Themen 4
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
L verkettete Liste Java Basics - Anfänger-Themen 15
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
O ADT Liste z. B. Java Basics - Anfänger-Themen 15
B sortierte Liste Java Basics - Anfänger-Themen 4
O Knoten und Liste verarbeitung Java Basics - Anfänger-Themen 20
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
Queiser Liste zurückgeben Java Basics - Anfänger-Themen 7
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17

Ähnliche Java Themen


Oben