Código que conte a quantidades de vezes que cada letra aparece em uma string

O meu código lê o texto digitado pelo usuário, tem o array com as letras do alfabeto, efetua a comparação corretamente, mais eu não sei como criar uma função para que a cada vez que encontrar uma determinada letra, ele acrescente +1, para que depois eu possa imprimir a quantidade de vezes que aquela letra apareceu.
Gostaria de saber se vocês poderiam me ajudar em como fazer isso.
Segue código que consegui criar até o momento.

public static void main(String args[]) {

	Scanner sc = new Scanner(System.in);
	String texto;

	System.out.println("Digite (ou cole) um texto para contar letras: ");
	texto = sc.nextLine();
	texto = texto.toLowerCase();

	char[] letras = new char[] {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
    'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',};

	for (int i = 0; i < texto.length(); i++) {

		for (int j = 0; j < letras.length; j++) {
			if (texto.charAt(i) == letras[j]) {

			}
		}
	}
}
String textoDoUsuario = "Aranha";
		
for(char c : textoDoUsuario.toCharArray()) {
	Pattern pattern = Pattern.compile(Character.toString(c).toLowerCase());
	Matcher matcher = pattern.matcher(textoDoUsuario.toLowerCase());
	int count = 0;
	
	while (matcher.find()) {
	    count++;
	}
	
	System.out.printf("A letra \"%s\" apareceu %d vezes. %n", c, count);
}
3 curtidas

@Guilherme_Miotto

    texto = texto.toLowerCase();
    Set<String> letrasSet = new HashSet<String>();
    Map<String, Long> letrasMap = new HashMap<String, Long>();
    Long quantidade;
for (int i = 0; i < texto.length(); i++) {
            quantidade = 0L;
	for (int j = 0; j < texto.length(); j++) {
		if (texto.charAt(i) == texto.charAt(j)) {
                        quantidade++;
                        letrasSet.add(String.valueOf(texto.charAt(i)));
                        letrasMap.put(String.valueOf(texto.charAt(i)), quantidade);
		}
	}               
}
    
    Iterator it  = letrasSet.iterator();
    while(it.hasNext()){
        String letra = String.valueOf(it.next());
        System.out.println(letra+" "+letrasMap.get(letra));
        
    }
1 curtida