Printar String

Como faço pra printar uma String que aparece mais?
Exemplo:

Casa
Árvore
Carro
Árvore
Casa
Casa

Resposta: Casa

Os valores estão guardados em qual estrutura de dados?

Eu criaria uma classe “Palavras” com os atributos String nome Int quantidade=0.
Criaria uma ArrayList , percorreria a estrutura onde estão as palavras e verificava com o metodo Contais se a palavra ja existe na ArrayList, se não existir você adiciona o nome e da quantidade +1.

1 curtida

Você escreve um algoritmo para contar cada String,
Ao final você escolhe a que tem maior incidência e imprime.

Você pode usar Map ou List ou criar uma estrutura própria.
Use a criatividade.

Estou aprendendo a API Streams do Java 8, então usei isso como exercício:

public static void main(String[] args) {
		ArrayList<String> listaDePalavras = new ArrayList<>(
				Arrays.asList("Casa", "Arvore", "Carro", "Arvore", "Casa", "Casa"));
		System.out.println(listaDePalavras.stream().collect(Collectors.groupingBy(String::toString)).values().stream()
				.max((s1, s2) -> Integer.compare(s1.size(), s2.size())).orElse(Arrays.asList("Não encontrado!"))
				.get(0));
	}

Se não houver uma palavra que mais se repete que as outras, acho que ele vai retornar a primeira palavra que empata em repetições.

Se alguém puder corrigir meu código ou sugerir melhorias, eu ficaria grato :slight_smile: