Como comparo dois elementos iguais em uma lista

Igualdade ampla compara dois valores para a igualdade, após converter ambos os valores para um tipo comum.   Após as conversões (um ou ambos os lados podem sofrer conversões), a comparação de igualdade final é realizada exatamente como === executa.  Igualdade ampla é simétrica: A == B sempre tem semântica idêntica à B == A para quaisquer valores de A e B.

A comparação de igualdade é realizado da seguinte forma para os operandos dos vários tipos:

Na tabela acima, ToNumber(A) tenta converter seu argumento para um número antes de comparação. Seu comportamento é equivalente a +A (o operador + unário). ToPrimitive(A) tenta converter seu argumento de objeto para um valor primitivo, tentando invocar sequências diferentes de A.toString e A.valueOf métodos em A.

Tradicionalmente, e de acordo com ECMAScript, todos os objetos são amplamente desiguais a undefined e null. Mas a maioria dos navegadores permitem uma classe muito limitada de objetos (especificamente, o objeto document.all para qualquer página), em alguns contextos, para agir como se eles emulassem o valor undefined. Igualdade ampla é um desses contexto. Portanto, o método IsFalsy(A) é avaliada como verdadeira se, e somente se, A for um objeto que emula undefined. Em todos os outros casos, um objeto não é amplamente igual a undefined ou null.

var num = 0; var obj = new String("0"); var str = "0"; console.log(num == num); console.log(obj == obj); console.log(str == str); console.log(num == obj); console.log(num == str); console.log(obj == str); console.log(null == undefined); console.log(obj == null); console.log(obj == undefined);

Alguns desenvolvedores consideram que nunca é uma boa idéia, praticamente, usar a igualdade ampla. O resultado de uma comparação usando a igualdade estrita é mais fácil de prever, e como nenhum tipo de coerção ocorre, a avaliação pode ser mais rápida.

Java fornece um método para comparar duas listas de matrizes. O ArrayList.equals() é o método usado para comparar duas Array List. Ele compara as listas Array como, ambas as listas Array devem ter o mesmo tamanho e todos os pares de elementos correspondentes nas duas listas Array são iguais.

Exemplo:

Input : ArrayList1 = [1, 2, 3, 4], ArrayList2 = [1, 2, 3, 4] Output: Array List are equal Input : ArrayList1 = [1, 2, 3, 4], ArrayList2 = [4, 2, 3, 1] Output: Array List are not equal

Sintaxe:

boolean equals(Object o)

Parâmetros: esta função possui um único parâmetro que é um objeto a ser comparado por igualdade.

Retorna: Este método retorna True se as listas de Array forem iguais.

Implementação:

// Comparing two ArrayList In Java import java.util.ArrayList; public class GFG { public static void main(String[] args) { // create two Array List ArrayList<String> ArrayList1 = new ArrayList<String>(); ArrayList<String> ArrayList2 = new ArrayList<String>(); // insert items in AyyarList 1 ArrayList1.add("item 1"); ArrayList1.add("item 2"); ArrayList1.add("item 3"); ArrayList1.add("item 4"); // insert items in AyyarList 2 ArrayList2.add("item 1"); ArrayList2.add("item 2"); ArrayList2.add("item 3"); ArrayList2.add("item 4"); // Display both ArrayList System.out.println(" ArrayList1 = " + ArrayList2); System.out.println(" ArrayList1 = " + ArrayList1); // compare ArrayList1 with ArrayList2 if (ArrayList1.equals(ArrayList2) == true) { System.out.println(" Array List are equal"); } else // else block execute when // ArrayList are not equal { System.out.println(" Array List are not equal"); } // insert one more item in ArrayList 1 System.out.println( "\n Lets insert one more item in Array List 1"); ArrayList1.add("item 5"); // display both ArrayList System.out.println(" ArrayList1 = " + ArrayList1); System.out.println(" ArrayList = " + ArrayList2); // again compare ArrayList 1 with ArrayList 2 if (ArrayList1.equals(ArrayList2) == true) { System.out.println(" Array List are equal"); } else { System.out.println(" Array List are not equal"); } } }

Saída ArrayList1 = [item 1, item 2, item 3, item 4] ArrayList1 = [item 1, item 2, item 3, item 4] Array List são iguais Vamos inserir mais um item na Array List 1 ArrayList1 = [item 1, item 2, item 3, item 4, item 5] ArrayList = [item 1, item 2, item 3, item 4] Lista de matrizes não são iguais

Complexidade de tempo: O (N), onde N é o comprimento da lista Array.

Skip to first unread message

unread,

Oct 27, 2011, 11:15:35 AM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

Olá Pessoal, como sempre, estou precisando de um Help. Quero encontrar qual a moda de uma ArrayList, ou seja, qual elemento que repete mais dentro desta lista. Tentei fazer da seguinte maneira como mostra abaixo, comparando o ultimo com o penúltimo elemento inserido e adicionando numa outra lista. O que pode estar errado?! meuBotao.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ Double v = Double.parseDouble(entradaDeTexto.getText().toString()); //limpa o campo de inserção de dados entradaDeTexto.setText(null); //Armazena um valor na lista lista.add(v); if (tamanhoLista > 1){ if (lista.get(tamanhoLista)== lista.get(tamanhoLista-1)){ lista2.add(v); } } }//Fim do onClick() }//Fim do OnClickListener() );//Fim do setOnClickListener()

unread,

Oct 27, 2011, 11:24:33 AM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

to

tentou usar um set ao inves de list? 

unread,

Oct 27, 2011, 11:32:04 AM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

Sim, tentei. Mas ai que tá, o Set armazena os valores que não repetem. E no meu caso, quero os valores repetentes armazenados numa outra lista.

On Oct 27, 1:24 pm, "leonardo." <> wrote:

> tentou usar um set ao inves de list? > > Em 27 de outubro de 2011 12:15, Cleidimar Viana

> <>escreveu:

unread,

Oct 27, 2011, 11:42:11 AM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

to

meuBotao.setOnClickListener(new View.OnClickListener(){                public void onClick(View arg0){                       Double v =Double.parseDouble(entradaDeTexto.getText().toString());               //limpa o campo de inserção de dados               entradaDeTexto.setText(null);                //Armazena um valor na lista               lista.add(v);               if (tamanhoLista > 1){

                       if (lista.contains(v)){                               lista2.add(v);

                       }

               }               }//Fim do onClick()               }//Fim do OnClickListener()

       );//Fim do setOnClickListener()

unread,

Oct 27, 2011, 11:43:40 AM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

to

nao testei, entao qlqr coisa de errado pode xingar ahuahauhah

unread,

Oct 27, 2011, 11:48:43 AM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

Acabei de tentar, mas não funfou! Acho que neste caso será um algoritmo de ordem, porque tem que ser comparado elemento por elemento e armazenar numa outra lista. Essa comparação, não estou conseguindo fazer.

On Oct 27, 1:42 pm, "leonardo." <> wrote:

> tentou assim? > meuBotao.setOnClickListener(new View.OnClickListener(){ >                public void onClick(View arg0){ > >                        Double v = > Double.parseDouble(entradaDeTexto.getText().toString()); > >                //limpa o campo de inserção de dados >                entradaDeTexto.setText(null); > >                //Armazena um valor na lista >                lista.add(v); > >                if (tamanhoLista > 1){

> *                       if (lista.contains(v)){ >                                lista2.add(v); >                        }*

>                } > >                }//Fim do onClick() > >                }//Fim do OnClickListener() >        );//Fim do setOnClickListener() > Em 27 de outubro de 2011 12:32, Cleidimar Viana

> <>escreveu:

unread,

Oct 27, 2011, 12:02:13 PM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

to

entao acho que por ser feito isso

private getValoresRepetidos(Double valor, List lista) {

List valoresRepetidos = new ArrayList();

 for (int i=0; i < lista.size(); i++) {

    Double valorNaLista (Double) lista.get(i);

    if (valorNaLista.equals(valor) {

      valoresRepetidos .add(valorNaLista);

  return valoresRepetidos ;

 //Armazena um valor na lista
 lista.add(v);

voce chama o metodo
lista2.addAll(getValoresRepetidos(Double valor, List lista) );

unread,

Oct 27, 2011, 11:50:21 PM10/27/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

Vlw aeh galera, consegui da seguinte forma: int nVezes = 0; int comparaV=0; if ( tamanhoLista > 2 ){ for(int p = 0; p<tamanhoLista; p++){ nVezes = 0; for(int k = p+1; k< tamanhoLista; k++){ if(lista.get(p).equals(lista.get(k))){ ++nVezes; } } if (nVezes > comparaV){ moda = lista.get(p); comparaV = nVezes;

} } }

On Oct 27, 2:02 pm, "leonardo." <> wrote:

> entao acho que por ser feito isso > > private getValoresRepetidos(Double valor, List lista) { > List valoresRepetidos = new ArrayList(); >  for (int i=0; i < lista.size(); i++) { >     Double valorNaLista (Double) lista.get(i); >     if (valorNaLista.equals(valor) { >       valoresRepetidos .add(valorNaLista); >     } > >   return valoresRepetidos ; >  } > > depois do >  //Armazena um valor na lista

> * lista.add(v);* > > voce chama o metodo > *lista2.addAll(getValoresRepetidos(Double valor, List lista) );*

> > Em 27 de outubro de 2011 12:48, Cleidimar Viana

> <>escreveu:

unread,

Oct 28, 2011, 8:19:58 AM10/28/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

O problema esta na forma de comparação pois: == , compara a referenção de um objeto na memória equals compara o valor dele Ex Integer x = 0; Integer y =0; // x == y - isso retorna false, pois os OBJETOS são diferentes //x.equals(y) - isso retorna true, pois os VALORES são iguais Felipe Costa Analista de Sistemas Android Junior

unread,

Oct 28, 2011, 2:20:41 PM10/28/11

Sign in to reply to author

You do not have permission to delete messages in this group

Sign in to report message as abuse

Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message

Exatamente isso @felipe, apanhei demais, mas já consegui resolver o problema. Vlw. Obrigado

Última postagem

Tag