Mezja:
Por favor alguien puede explicar por qué System.out.println("Doesn't repeat: "+a[i]);
no imprimir nada?
import java.util.Arrays;
import java.util.Random;
public class Practice {
public static void main(String[] args) {
int []a=new int[100];
Random rand =new Random();
for(int i=0;i<100;i++)
{
a[i]=rand.nextInt((100-1)+1)+1;
}
Arrays.sort(a);
for(int i=0;i<100;i++)
{
System.out.print(a[i]+ " ");
}
boolean flag;
System.out.print(" ");
System.out.print(" ");
for(int i=0;i<100;i++)
{
flag=false;
for(int j=0;j<100;j++)
{
if(a[i]==a[j])
{
flag=true;
break;
}
}
if(flag==false)
{
System.out.println("Doesn't repeat: "+a[i]);
}
}
}
}
Estoy recibiendo solamente la matriz actual de 100 elementos y las líneas con elementos que no aparecen dos o más veces no se presentan.
Editar:
import java.util.Arrays;
import java.util.Random;
public class Practice {
public static void main(String[] args) {
int []a=new int[100];
Random rand =new Random();
for(int i=0;i<100;i++)
{
a[i]=rand.nextInt((100-1)+1)+1;
}
Arrays.sort(a);
for(int i=0;i<100;i++)
{
System.out.print(a[i]+ " ");
}
boolean flag;
System.out.print(" ");
System.out.print(" ");
for(int i=0;i<100;i++)
{
flag=false;
for(int j=0;j<100;j++)
{
if (i==j) {
continue;
}
else if(a[i]==a[j])
{
flag=true;
break;
}
}
if(flag==false)
{
System.out.println("Doesn't repeat: "+a[i]);
}
}
}
}
Por ahora esto es lo mejor que puedo conseguir, pero excluye los elementos de código igual, incluso si son los únicos.
pasarán;
Hice algunos cambios en su código (eliminado flag
y el uso unique
, ya que es más fácil de leer).
También he añadido un bucle interior que modifica i
, a la última de índice que contiene un elemento no único:
boolean unique;
System.out.println();
for (int i = 0; i < 100; i++) {
unique = true;
for (int j = i + 1; j < 100; j++) {
if (a[i] == a[j]) {
unique = false;
break;
}
}
if (unique) {
System.out.println("Doesn't repeat: " + a[i]);
} else {
for (int k = i + 1; k < 100; k++) {
if (a[k] != a[i]) {
i = k - 1;
break;
}
}
}
}