TreeMap - Einträge verschwinden einfach

66oder6?

Neues Mitglied
Hi,

ich habe hier das Problem in Zeile 64-68 das aus der TreeMap einfach Einträge verschwinden, denn die Anzahl der generierten Passwörter ist meistens nicht 10. 😵‍💫

Könntet ihr vielleicht einmal einen Blick rauf werfen? Danke

Java:
import java.awt.*;
import java.util.Random;
import java.util.TreeMap;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import me.gosimple.nbvcxz.Nbvcxz;
import me.gosimple.nbvcxz.resources.Generator;
import me.gosimple.nbvcxz.scoring.Result;

public class Main {
  public static void main(String[] args) {
    JLabel label1 = new JLabel("Enter password:");
    JTextField textField1 = new JTextField(20);
    JLabel label2 = new JLabel("Password strength:");
    JTextField textField2 = new JTextField(20);
    JLabel label3 = new JLabel("Generated password:");
    JButton button3 = new JButton("Generate password");
    JTextArea textArea3 = new JTextArea();
    fillArea(textArea3);
    textArea3.setFont(new Font("Monospaced", Font.PLAIN, 12));
    JPanel panel1 = new JPanel(new GridLayout(3, 2));
    panel1.add(label1);
    panel1.add(textField1);
    panel1.add(label2);
    panel1.add(textField2);
    panel1.add(label3);
    panel1.add(button3);
    JFrame frame = new JFrame("Password strength and generator");
    frame.add(panel1, BorderLayout.NORTH);
    frame.add(new JScrollPane(textArea3), BorderLayout.CENTER);
    frame.pack();
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setVisible(true);

    textField1
        .getDocument()
        .addDocumentListener(
            new DocumentListener() {
              @Override
              public void insertUpdate(DocumentEvent e) {
                update();
              }

              @Override
              public void removeUpdate(DocumentEvent e) {
                update();
              }

              @Override
              public void changedUpdate(DocumentEvent e) {
                update();
              }

              private void update() {
                textField2.setText(resultToString(calculateStrength(textField1.getText())));
              }
            });
    button3.addActionListener(e -> fillArea(textArea3));
  }

  private static void fillArea(JTextArea area) {
    TreeMap<Double, String> passwords = new TreeMap<>();
    for (int i = 0; i < 10; i++) {
      String p = generatePassword();
      Result r = calculateStrength(p);
      passwords.put(r.getEntropy(), p);
    }
    StringBuilder sb = new StringBuilder("Passwords:\n");
    for (String s : passwords.values()) {
      sb.append(s).append(" - ").append(resultToString(calculateStrength(s))).append("\n");
    }
    area.setText(sb.toString());
    area.setCaretPosition(0);
  }

  private static Result calculateStrength(String password) {
    // With all defaults...
    Nbvcxz nbvcxz = new Nbvcxz();
    return nbvcxz.estimate(password);
  }

  private static String resultToString(Result result) {
    return String.format("%d/%f", result.getBasicScore(), result.getEntropy());
  }

  private static final Random RANDOM = new Random();

  private static String generatePassword() {
    int len = RANDOM.nextInt(5) + 12;
    return Generator.generateRandomPassword(Generator.CharacterTypes.ALPHANUMERIC, len);
  }
}

Danke
 

Anhänge

  • PasswordStrength-1.0.jar
    748,4 KB · Aufrufe: 0

Oneixee5

Top Contributor
Der Test wäre recht einfach:
Java:
    TreeMap<Double, String> passwords = new TreeMap<>();
    for (int i = 0; i < 10; i++) {
      String p = generatePassword();
      Result r = calculateStrength(p);
      if (passwords.put(r.getEntropy(), p) != null) {
          logger.warn("passwords entry overwritten by key: {}", r.getEntropy());
      }
    }
 

Jw456

Top Contributor
Dann überlege doch mal warum könnte es verschwinden oder besser gesagt warum wird es nicht gespeichert.
Was Passiert wenn du zwei gleiche PW Speichen tust? Also dein Radom das gleiche PW nochmal zieht.
 

schreib-tisch

Neues Mitglied
Ich hätte es wohl einfach so gemacht:

Java:
  private static void fillArea(JTextArea area) {
    TreeMap<Double, TreeSet<String>> passwords = new TreeMap<>();
    for (int i = 0; i < 25; i++) {
      String p = generatePassword();
      Result r = calculateStrength(p);
      passwords
          .computeIfAbsent(
              r.getEntropy(),
              k ->
                  new TreeSet<>(
                      Comparator.comparingInt(String::length).thenComparing(String::compareTo)))
          .add(p);
    }
    StringBuilder sb = new StringBuilder("Generated Passwords:\n");
    int i = 1;
    for (TreeSet<String> list : passwords.values()) {
      for (String s : list) {
        sb.append(String.format("%02d. ", i++))
            .append(s)
            .append(" - ")
            .append(resultToString(calculateStrength(s)))
            .append("\n");
      }
    }
    area.setText(sb.toString());
    area.setCaretPosition(0);
  }

Die Einträge sind nach Entropie sortiert, bei mehreren Einträgen gleicher Entropie, stehen die kürzeren Einträge weiter vorn und bei mehreren Einträgen gleicher Entropie und Länge wird alphabetisch sortiert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Map (TreeMap in TreeMap) Java Basics - Anfänger-Themen 1
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
O Erste Schritte TreeMap nach Value sortieren Java Basics - Anfänger-Themen 2
H Collections Was ist schneller - HashMap + Sort v TreeMap? Java Basics - Anfänger-Themen 75
D TreeMap: Höheren Key ermitteln und den Value liefern Java Basics - Anfänger-Themen 3
C TreeMap Abfragen Problem Java Basics - Anfänger-Themen 7
F HashMap vs. TreeMap Java Basics - Anfänger-Themen 5
I TreeMap Java Basics - Anfänger-Themen 4
H TreeMap/HashMap synchronisieren Java Basics - Anfänger-Themen 2
M TreeMap Java Basics - Anfänger-Themen 4
H TreeMap<> statt TreeMap<Long, String> Java Basics - Anfänger-Themen 2
algebraiker TreeMap<Date,Object> navigieren? Java Basics - Anfänger-Themen 24
W Treemap remove Java Basics - Anfänger-Themen 5
N Frage zu TreeMap Java Basics - Anfänger-Themen 3
B OOP Jtree aus TreeMap<String, String[]> erstellen? Java Basics - Anfänger-Themen 6
H Datentypen TreeMap<Double, Object> - negative Werte? Java Basics - Anfänger-Themen 4
H TreeMap.remove(value) - und nicht mit key! Geht das? Java Basics - Anfänger-Themen 18
H TreeMap Rückgabe - Compiler-Warnings Java Basics - Anfänger-Themen 9
S Studentenverwaltung mit TreeMap Java Basics - Anfänger-Themen 8
F Treemap und Sortierung? Java Basics - Anfänger-Themen 2
G TreeMap Java Basics - Anfänger-Themen 6
T TreeMap lässt sich nicht sortieren Java Basics - Anfänger-Themen 8
P wie clont sich eine TreeMap? Java Basics - Anfänger-Themen 8
G TreeMap Probleme. Java Basics - Anfänger-Themen 10
G TreeMap vom 1. bis letzte eintrag durchgehen Java Basics - Anfänger-Themen 17
F TreeMap speichern und lesen Java Basics - Anfänger-Themen 3
Q TreeMap immer sortiert halten Java Basics - Anfänger-Themen 9
H Treemap mit zusammengesetzten Key erstellen Java Basics - Anfänger-Themen 13
G TreeMap sortieren über ArrayList als Value Java Basics - Anfänger-Themen 9
O TreeMap nach Object[] casten? Java Basics - Anfänger-Themen 3
N ResultSet auf Einträge überprüfen Java Basics - Anfänger-Themen 5
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
S CSV auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 8
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
M Erste Schritte JList einträge Java Basics - Anfänger-Themen 1
P Erste Schritte Einträge aus verschachtelter Map chronoligisch ausgeben Java Basics - Anfänger-Themen 5
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
T Einträge in jComboBox aus Liste übernehmen Java Basics - Anfänger-Themen 1
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
E Array doppelte Einträge Java Basics - Anfänger-Themen 2
S Variablen Array in ArrayList auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 4
T Alte Einträge im Array werden von neuen überschrieben Java Basics - Anfänger-Themen 5
P Doppelte Einträge in eine List Java Basics - Anfänger-Themen 5
D Javaliste auf gleiche Einträge überprüfen Java Basics - Anfänger-Themen 2
C Doppelte Einträge aus String [] Array entfernen. Java Basics - Anfänger-Themen 5
C Datentypen Array-Einträge überhalb der Array-Länge - welcher Wert? Java Basics - Anfänger-Themen 5
L Erste Schritte Einträge in ArrayList prüfen Java Basics - Anfänger-Themen 4
M Ziffer einträge vergrößern Java Basics - Anfänger-Themen 16
H Einträge aus Array löschen Java Basics - Anfänger-Themen 8
J Markierte Einträge (Dateien) in JList sollen in einen anderen Ordner verschoben werden. Java Basics - Anfänger-Themen 12
K ArrayList.add() überschreibt vorhandene Einträge. Java Basics - Anfänger-Themen 12
M Gewisse Einträge aus einer ArrayList löschen Java Basics - Anfänger-Themen 3
M doppelte Einträge Emailempfänger... Java Basics - Anfänger-Themen 35
K ArrayList Zugreifen auf Einträge Java Basics - Anfänger-Themen 8
G txt-File als DB>doppelte Einträge verhindern/Suche/... Java Basics - Anfänger-Themen 10
B 2D-Array, gleiche Einträge prüfen Java Basics - Anfänger-Themen 5
F Hiberate-Log-Einträge Java Basics - Anfänger-Themen 2
J Datentypen List - gleiche Einträge bei neuen Objekten Java Basics - Anfänger-Themen 31
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
kitz Mehrere Einträge auswerfen? Java Basics - Anfänger-Themen 20
P Doppelte Einträge in mehreren Textfiles finden und ausgeben Java Basics - Anfänger-Themen 8
E Darstellung der Choice Einträge Java Basics - Anfänger-Themen 4
K Datentypen Liste: Einzelne Einträge ändern Java Basics - Anfänger-Themen 2
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2
J doppelte Einträge in einem Array Java Basics - Anfänger-Themen 7
M Einträge in Dateien zählen - Performance-Problem Java Basics - Anfänger-Themen 10
M Einträge in JComboBox farblich hinterlegen? Java Basics - Anfänger-Themen 2
-horn- Doppelte Einträge entfernen, aus Array, List oder sonstwas Java Basics - Anfänger-Themen 9
G _NUR_ doppelte Einträge in einem Array behalten Java Basics - Anfänger-Themen 3
B Einträge im JList einfügen Java Basics - Anfänger-Themen 9
G doppelte Einträge im String Array löschen Java Basics - Anfänger-Themen 21
V Vector/Arraylist hat nur gleiche Einträge Java Basics - Anfänger-Themen 3
0 ArrayList - doppelte Einträge entfernen? Java Basics - Anfänger-Themen 9
S Methode, um doppelte Einträge in Array zu finden Java Basics - Anfänger-Themen 5
G Wie doppelte Einträge in ComboBox vermeiden ? Java Basics - Anfänger-Themen 9
M Doppelte Einträge in einer datei löschen(nach timestamp)! Java Basics - Anfänger-Themen 4
D Doppelte Einträge einer Liste löschen Java Basics - Anfänger-Themen 6
ARadauer Alle Einträge im Startverzeichnis Java Basics - Anfänger-Themen 5
B 2 ELists vergleichen und doppelte Einträge löschen Java Basics - Anfänger-Themen 11
M einträge farblich hervorheben ? Java Basics - Anfänger-Themen 8
M Vector soll keine doppelten Einträge enthalten! Java Basics - Anfänger-Themen 5
M Einträge einer .txt-Datei in einem TextField ausgeben lassen Java Basics - Anfänger-Themen 8
J Wie kann man im Systempopup einträge machen z.B im Explorer? Java Basics - Anfänger-Themen 6
K mehrere DB Einträge in einem JTable darstellen ?HILFE! Java Basics - Anfänger-Themen 2
G Array-Listen vergleichen und Einträge löschen ? Java Basics - Anfänger-Themen 4
S JList Einträge löschen Java Basics - Anfänger-Themen 3
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Wie lasse ich meine Ausgabe nach dem Lesen verschwinden ? Java Basics - Anfänger-Themen 1
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
F Java BlueJ Dinge verschwinden lassen Java Basics - Anfänger-Themen 2
D Erste Schritte Canvas verschwinden nicht mehr Java Basics - Anfänger-Themen 2
C Bild verschwinden lassen Java Basics - Anfänger-Themen 7
R Images verschwinden? Java Basics - Anfänger-Themen 3
M MergeSort - Zahlen verschwinden Java Basics - Anfänger-Themen 2
R ArrayList Objekte verschwinden Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben