A parte il titolo che fa pensare a qualcosa di completamente diverso (mi dava l'idea che avevi un array di roba e volevi tipo mettere tutto insieme in una stringa).
Soluzione stupida (da bambino delle elementari, la prima roba che mi e' venuta in mente) e per niente generica, ovvero funziona solo con i numeri di 4 cifre e cicla tutti i numeri da 0 a 9999, ma ci mette solo 108 ms nel mio iMac. Sta a te trovare un modo piu' efficiente ed eventualmente generico.
codice:import java.util.*; public class Duplicates { public static boolean hasDuplicates (int n) { int n1000 = n / 1000; int n100 = (n - n1000 * 1000) / 100; int n10 = (n - n1000 * 1000 - n100 * 100) / 10; int n1 = (n - n1000 * 1000 - n100 * 100 - n10 * 10); if (n1000 == n100 || n1000 == n10 || n1000 == n1 || n100 == n10 || n100 == n1 || n10 == n1) { return true; } else { return false; } } public static void main (String[] args) { long start = System.currentTimeMillis(); List<Integer> l = new ArrayList<Integer>(); for (int i = 0; i <= 9999; i++) { if (!hasDuplicates (i)) { System.out.println (i); l.add (i); } } long stop = System.currentTimeMillis(); System.out.println ("Total time = " + (stop - start)); } }

Rispondi quotando