exemplo:
String[] nome = {"java", "java", "java"};
for (int i = 0 ; i < nome.length; i++) {
if (nome[i].equals(nome[i+1])){
JOptionPane.showMessageDialog(null, "Elemento "+ i +" iqual!!!");
}
}
Isso é uma pergunta ou um exemplo? Se é uma pergunta, qual a dúvida exatamente?
O objetivo é saber se todos os elementos são iguais ou saber os conjuntos de elementos repetidos?
Abraço.
Se eu entendi bem, vc quer saber se todos os elementos de um array são iguais, então;
String[] nome = {"java", "java", "java"};
String primeiroElemento = null;
boolean tudoIgual = true;
for (int i = 0 ; i < nome.length; i++) {
if (i == 0){
primeiroElemento = nome[i];
}
if (!nome[i].equals(primeiroElemento)){
tudoIgual = false;
}
}
if (tudoIgual){
System.out.println("Todos os elementos são iguais!");
}else{
System.out.println("Existem elementos diferentes do primeiro elemento");
}
Umas otimizações:
String[] nome = {"java", "java", "java"};
String primeiroElemento = nome[0]; // já pega o primeiro antes do for
boolean tudoIgual = true;
for (int i = 1; i < nome.length; i++) { // já temos o elemento zero, então o for pode começar em 1
if (!nome[i].equals(primeiroElemento)){
tudoIgual = false;
break; // sai do loop, já achamos um elemento diferente, não precisa continuar
}
}
if (tudoIgual){
System.out.println("Todos os elementos são iguais!");
}else{
System.out.println("Existem elementos diferentes do primeiro elemento");
}
Abraço.
me parece que esse código vai dar IndexOutOfBoundsException na última iteração.
se for o caso, coloca ;i < nome.length -1;
Obrigado, gente pelos exemplos!!
Mas assim, acabar não verificando o ultimo elemento do array???
Para entender vetores, você precisa saber que:
Um vetor de 5 posições conterá 5 “casas” onde os valores serão armazenados.
Cada “casa” é numerada, começando-se por 0 e indo até a última casa que terá como número sempre o resultado da expressão vetor.length - 1. Assim sendo, um vetor de 5 posições possui casas numeradas de 0 (início) a 4 (5 - 1).
Logo, quando você faz:
for (int i = 0; i < nome.length;i++){
você está dizendo que irá entrar em todas as casas do vetor, sempre que o valor da variável i for menor que o tamanho do vetor. Em suma, ele irá "passar’ por todas as “casas”, da número 0 até a length - 1.
ele vai fazer penultimo.equals(ultimo)
Não tem necessidade de fazer mais que isso.
Para ver melhor, sugiro que vc aprenda a usar o debug. Fica mais fácil de perceber esse tipo de coisa.
Obrigado pela dica Andre!!!
Ou usar o Set pra eliminar todos os repetidos e verificar o size
public class Test {
public static void main(String[] args) {
String[] nomes = {"java", "java", "java"};
if (isTodosElementosIguais(nomes)) {
System.out.println("Todos elementos sao iguais");
} else {
System.out.println("Os elementos nao sao todos iguais");
}
}
public static boolean isTodosElementosIguais(String[] lista) {
return new HashSet<String>(Arrays.asList(lista)).size() == 1;
}
}