Arreglo en java

Necesito ayuda para entender lo que tengo que hacer, estoy estudiando una tecnicatura en informática y estuve faltando por estar enferma y ahora no caso una!
Tengo un parcial y me dieron unos ejercicios para practicar y no tengo idea de como hacerlos!
Leo la teoría pero no la termino de entender y no se para donde ir, te paso el primero y te muestro mas o menos como lo encare a ver si me podes ayudar a terminarlo o a encararlo mejor.
Tengo que crear un método de clase tipo boolean al que yo le pase una determinada cantidad de elementos y en el método me diga que no tiene elementos repetidos.
O sea lo empecé así:
static boolean esSinrepetidos( int [] arr){

int con=0;

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

int repetido= arr;

if (arr[i+1]== repetido){

con ++; }

if (con != 0)

{ return false;}
Y de acá no se para donde ir! A mi el método me tiene que decir que el arreglo no tiene repetidos!

Respuesta
1

Perdona por la tardanza en contestar, por lo que entiendo es que le pasas una array de enteros y tienes que ir verificando si en hay elementos repetidos en el array, en caso de no tener ningún elemento, en entonces la función o método devolverá verdadero o true.

El método consiste en dos bucles donde el primero tomara el elemento a comparar con el resto de los elemento y el segundo bucle sera encargado recorrer todo el array y compararlo, es decir:

static boolean esSinrepetidos( int [] arr){
for (int i = 0; i<arr.length-1; i++){
for(int j=i+1; j<arr.length; j++){

if(arr==arr[j]){

return false;

}

}
}
return true;

}


Espero llegar a tiempo para ese parcial.

1 respuesta más de otro experto

Respuesta
1

Aquí posees varios errores, pero para nada es un
problema. Primero tienes que determinar qué quieres hacer, es decir que es lo
que va a hacer tu método, la idea es que vas a revisar si algún valor de la
lista se encuentra repetido, así que básicamente si lo hicieras a mano que harías…
Pues tomarías el primer valor y comprobarías que este no se encuentre en mas ningún
lugar, luego lo harías con el segundo valor y así sucesivamente, pues la idea
que vamos a seguir es esa misma, esta no es la forma más eficiente para
resolver este problema pero si la mas intuitiva y esta usaremos para que puedas
entenderlo bien.

public static boolean esSinrepetidos(int[]arr){
for(int i = 0; i < arr.length -1; i++) {
for(int j = i+1; j < arr.length; j++) {
if(arr == arr[j]){
return false;
}
}
}
return true;
}


El primer ciclo va a dárnoslos pases y el segundo las comparaciones, en la primera iteración del ciclo
externo i =0 al entrar en el ciclo interno, este ciclo va a recorrer todo el
array a partir de la posición que ocupe i sin contarla claro esta y si
encuentra un valor igual ya retorna false ya que si tiene al menos 1 repetido
entonces ya en general contiene elementos repetidos, espero que esto te
resuelva y cualquier cosa aquí estamos
J


muchas gracias!!! por contestar ! si me imaginaba que necesitaba dos ciclos! otra consulta si quisiera sumar dos arreglos distintos y que me diera otro arreglo nuevo también tendría que hacer dos ciclos??? o sea si tuviera int arr1 ={1,2,6} y otro int arr2={ 5,7,11} quiero que me devuelva int arr 3 = {1,2,6,5,7,11} también lo puedo hacer con dos ciclos?

disculpa que sea tan hincha pero estoy re confundida con arreglos! no los termino de entender , me confunde el uso de new cada vez que tengo que crear un objeto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas