Questa cosa a tuo avviso è meglio?
codice:
package web1;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;

public class FromTxtToMatrix {

    private HashMap<String, String> Matrice = new HashMap<>();

    public HashMap<String, String> LeggiFile(String File) throws IOException {
        FileReader f = new FileReader(File);
        BufferedReader b = new BufferedReader(f);
        int Riga = 0;
        String[] VettoreRiga;
        String StringaRiga = null;
        while (true) {
            StringaRiga = b.readLine();
            if (StringaRiga == null)
                break;
            VettoreRiga = StringaRiga.split(",");
            this.Matrice.put(VettoreRiga[0], VettoreRiga[1]);
        }
        return Matrice;
    }

    public boolean CercaUtente(HashMap<String, String> Matrice, String[] VettoreRiga) {
        if (Matrice.containsKey(VettoreRiga[0])){
            if ((Matrice.get(VettoreRiga[0])).equals(VettoreRiga[1])) {
                return true;
            }
        }
        return false;
    }
}
I problemi di collisione vengono risolti da HashMap in automatico, giusto?
La mia domanda è anche un'altra: se metto in un try/cath la sola stringa (Matrice.get(VettoreRiga[0])).equals(VettoreRiga[1]) posso risparmiare Matrice.containsKey(VettoreRiga[0])? In buona sostanza posso ancora risparmiare tempo e risorse oppure il mio codice è "perfetto"?
Grazie come sempre