En supprimant les doublons d'un tableau (sans jeux de ou de tri)

J'ai le code suivant:

import java.util.Scanner;
public class ArrayDuplicates {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("How many numbers are you going to enter? ");
        int num = scan.nextInt();
        int[] arr = new int[num]; //initialize array with user inputted length
        for (int i = 0; i < arr.length; i++) { //enter numbers into array
            arr[i] = scan.nextInt();
        }

        int[] unique = new int[arr.length];    //initialize new array that will hold unique values
        for (int i = 0; i < arr.length; i++) {
            boolean b = true;    //boolean that checks if an element is a duplicate
            for (int j = i+1; j < arr.length; j++) {    //check all elements above int i
                if (arr[i] == arr[j]) {
                    b = false;    //set b to false if there is an existing duplicate
                }
            }
            if (b) {
                unique[i] = arr[i];    //if no duplicates exist, then it is unique.
            }
        }   
        for (int i = 0; i < unique.length; i++) {
                System.out.println(unique[i]);
        }
    }
}

Le problème avec ce code (en plus d'être horriblement lent pour de grands tableaux, mais ce n'est pas le point), c'est que depuis le non déclarées éléments pour la unique tableau sera mis à 0, le dupliquer des éléments du premier tableau sont en cours de mise à 0 dans unique[] (si cela a un sens). Je comprends pourquoi cela arrive, mais ne peut pas trouver un moyen efficace de résoudre ce problème. J'ai essayé le réglage de la dupliquer des éléments de Integer.MIN_VALUE dans la gamme unique et puis l'impression que les éléments de unique[] qui ne sont pas égales à Integer.MIN_VALUE, mais cela semble être une solution faible du problème. Comment puis-je résoudre ce problème?

EDIT: Si j'exécute le code:

Combien de numéros allez-vous entrer? 4

1

2

2

0

De sortie:

1
0
2
0

Depuis le deuxième élément du tableau est un doublon, je n'ai pas mis unique[1] de toute valeur, rendant par défaut à 0. Comment puis-je éviter l'impression que 0, car il ne fait pas partie du tableau d'origine?

EDIT 2: Oui, c'est les devoirs, mais la raison pour laquelle je ne veux pas utiliser des ensembles, tri, etc. est surtout que je ne suis pas familier avec eux. Aussi, comme je ne suis pas demander à quelqu'un d'écrire l'ensemble du programme pour moi, je pense que c'est bien de demander un peu d'aide.

Im peur que cela n'a aucun sens pour moi, pourriez-vous reformuler ce que vous essayez de dire à votre question?
Avez-vous envisagé de ne pas ajouter les doublons dans le tableau en premier lieu?
On pouvait compter les éléments uniques dans arr avant la création de la unique tableau
Sans l'aide d'une Liste ou de Définir la solution devient extrêmement pénible. Si vous avez de ne pas utiliser une Liste ou d'un Ensemble, je voudrais simplement vous suggérons de définir des valeurs en double en Entier.MIN_VALUE, comme vous l'avez dit, ou la création d'un parallèle de valeurs booléennes
Java les tableaux ne sont pas dynamiquement la taille, de sorte que vous ne pouvez pas supprimer, un élément sans plus de code. Aussi, le Map ou List ne sont pas un Set ou de tri.

OriginalL'auteur Kootling | 2014-10-25