Java mettere Hashmap in un diagramma ad albero

Attualmente sto leggendo 2 milioni di righe da un file di testo, come chiesto nella domanda precedente
Java modo più Veloce per leggere file di testo con 2 milioni di linee

Ora ho memorizzare queste informazioni in HashMap e voglio ordinare tramite diagramma ad albero perché voglio usare ceilingkey. È il seguente metodo corretto?

private HashMap<Integer, String> hMap = new HashMap();

private TreeMap<Integer, String> tMap = new TreeMap<Integer, String>(hMap);
  • Collections.sort(hMap) ? ,Collections.sort(hMap,WITH_MY_OWN_COMPARATOR) ?
  • Perché non basta mettere direttamente in un TreeMap ? Perché il passo in più?
  • hrm…io preferisco ordinare con il diagramma ad albero, ma il mio codice, il diagramma ad albero è vuoto
  • atta : Collections.sort(hMap) non funziona, sort() lavorare con un Elenco solo

 

3 Replies
  1. 23
    HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
    TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
    treeMap.putAll(hashMap);

    Dovrebbe funzionare comunque.

    • Stai solo scherzando ??? Passando costruttore chiama anche putAll() :). Checkout il codice sorgente del link, ho aggiunto
    • sᴜʀᴇsʜ ᴀᴛᴛᴀ , c’è qualcosa di sbagliato in questo?
    • Non sto dicendo che questa risposta è sbagliata, Quello che sto dicendo è che questa risposta è uguale a quello che si sta facendo adesso.
    • E ‘ corretto, ma l’utilizzo del costruttore è più elegante.
    • la domanda è… e ‘ diverso da quello che hai postato in ur domanda di cui sopra !?
    • Akkusativobjekt, io sto usando il costruttore, ma non funziona. il diagramma ad albero è vuoto quando provo a stampare
    • Quindi, questo è il problema, Posta il codice completo. Un semplice test stampare la mappa originale e quindi stampare la mappa ad albero e vedere la differenza.
    • oddio riesco a risolvere, perché la hashmap è aggiunto in fase di runtime, quindi devo costruire dopo ho aggiunto per hashmap
    • Ooops.Succede qualche volta. Buona pesca. Io l essere felici Se si elimina questo post 🙂
    • almeno imparo qualcosa, putAll(); lavoro troppo =D

  2. 5

    Questo dovrebbe funzionare correttamente:

    HashMap<Integer, String> hashMap = new HashMap<>();
    TreeMap<Integer, String> treeMap = new TreeMap<>(hashMap);

    Ma non mi consiglia di utilizzare HashMap per memorizzare l’input. Si finisce con due carte con lo stesso enorme di dati. Fare il volo e aggiungere direttamente nel TreeMap o utilizzare List per TreeMap di conversione.

    Anche, per maggiore efficienza considerare primitivo collezioni.

  3. 1
    HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
    TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
    hashMap.remove(null);
    treeMap.putAll(hashMap);

    HashMap permetterà null ma diagramma ad albero non è così, prima di aggiungere in un diagramma ad albero, rimuovere null da keyset

Lascia un commento