Prima dovresti creare una classe che contenga quei dati, in questo caso presumo una class User o Persona

codice:

public class Persona {
    
    private String id;
    
    private String nome;
    private String cognome;
    
    private String indirizzo;
    
    private String ruolo;

    public Persona(String id, String nome, String cognome, String indirizzo, String ruolo) {
        this.id = id;
        this.nome = nome;
        this.cognome = cognome;
        this.indirizzo = indirizzo;
        this.ruolo = ruolo;
    }

    //I vari metodi getter e setter, toString ecc...
      
}
Poi crei una ArrayList<Persona> e inserisci ogni persona recuperando i dati per il costruttore dal ResultSet.

codice:
public void visualizzaDati() {
		try {
			String driver = "com.mysql.jdbc.Driver";
			Class.forName(driver);
			String url = "jdbc:mysql://localhost:3306/progetto";
			Connection con = DriverManager.getConnection(url, "root", "");
			Statement cmd = con.createStatement();

			String qry = "SELECT * FROM persona";

                        ArrayList<Persona> lista = new ArrayList<Persona>();

			ResultSet res = cmd.executeQuery(qry);
			while (res.next()) 
                                lista.add(new Persona(res.getString("idPersona"),
                                                              res.getString("nome"),
						              res.getString("cognome"),
						              res.getString("indirizzo"),
						              res.getString("ruolo")
                               );

			res.close();
		} catch (SQLException SQLexc) {
			SQLexc.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
                }
}
Altrimenti se vuoi memorizzare semplicemente le String all'interno di un ArrayList puoi creare una ArrayList che contiene delle ArrayList di String

codice:
ArrayList<ArrayList<String>> lista;
Ma è un modo per complicarsi la vita xD

Spero di esserti stato d'aiuto (e che il programma giri xD)