• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

limalhao

Iguais em Arrays

8 mensagens neste tópico

Boas preciso de um help em Java Arrays.

Isto é capaz de ser simples mas sou muita bazarocoem programação e infelizmente ando ás cabeçadas á montes de tempo e não consigo ultrapa :down:ssar tenho um array com valores idênticos ou seja int [] v1={1,2,3,3,4,5,6,6] e agora quero criar um novo e retirar os iguais.

Alguém me pode dar um exemplo de como retiro os iguais com um bocadinho de código eu sei que não devia estar a pedir o código mas é mesmo porque não chego lá.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é simples eu explico por palavras e tu tentas fazer o código depois podes postar aqui o que fizeste se não conseguires.

Crias um ciclo para percorrer todo o array, copias a primeira posição da array original para o novo, em seguida passas para a segunda posição do original e antes de o copiar fazes outros ciclo mas desta vez ao novo array, percorres todo o array comparando  cada uma das posições com o valor que queres inserir, se chegar ao fim sem encontrar então fazes a copia do valor, depois é repetir o processo para as restantes posições do array original.

.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se o array estiver ordenado (como acontece no exemplo), ainda é mais simples. Basta ver o último elemento copiado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Peço desculpa mas não consigo já fiz de tudo aqui vai o código que fiz:

int array[] = {1, 2, 3, 3, 5};

int array_2[] = new int[array.length];

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

array_2[i] = array[i]; 
      if(array_2[i] == array[i]) System.out.print("[ " +array_2[i] );
  
 else if(array[i] < array_2[i+1] && array[i] == array_2[i+1]); System.out.print(", "+ array_2[i] );
  break;
  }
System.out.print(" ]");
}
}

O output que me dá é este:

[ 1, 1 ] não consigo sair disto o meu problema é mesmo retirar os iguais é como vos digo pode ser fácil mas não estou a conseguir chegar.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
public class ArrayCpy{

public static void main(String args []){
	int array[] = {1, 2, 3, 3, 5};
	int novo[] = new int[array.length];
	int apontador = 0;
	boolean encontra = false;

	for (int i = 0 ; i < array.length ; i++){
		for(int k = 0; k < novo.length; k++){
			if(array[i] == novo[k]){
				encontra = true;
			}
		}
		if(!encontra){
			novo[apontador] = array[i];
			apontador++;

		}
		encontra = false;
	}
	for(int i : novo){
		System.out.println(i);
	}
}

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de mais mto obrigado, não chegava lá facilmente, só uma duvida neste código o que faz:

for(int i : novo) ainda não tinha visto esta expressão no ciclo for

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É uma expressão que foi introduzida no Java 5 tem a mesma funcionalidade do foreach que outras linguagens tem como ruby e python se não me engano.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora