Java

(JAVA) Как прописать чтобы в массиве не было одинаковых элементов?

У меня есть класс "Работник" и у него есть поле ID
Так вот мне нужно чтобы у каждого был свой УНИКАЛЬНЫЙ рандомный ИД. Вот мой код, но он работает только настолько, что одинаковых ИДОВ нет только рядом с друг с другом, а в массиве все же они есть...
Как быть? Что дописать ?

______________________________
for (int j=Employes.length-1;j>0;j--){
while (Employes[j].id==Employes[j-1].id) {Employes[j].SetId();} } // Пока ID текущего обьекта==ID следующего, выполнять рандом ID'а текущего обьекта
Массивы в программировании используются редко. Намного чаще используются различные структуры данных: динамические массивы, различные списки и коллекции, мэпы. Я честно говоря не очень понял смысл задания. Если нужны уникальные id, тогда задавайте их последовательно от 0 до inf.
ЮР
Юрий Рымарь
61 203
Лучший ответ
Азамат Уразбаев Нет, мне нужны рандомные ID, но чтобы не повторялись, какова мала бы не была вероятность ...
так в чем проблема, создать массив айдишников 1 2 3 4 5 6...
и присвоить работникам поочередно эти айди?
зачем рандом-то

а если рандом так важен, то проверяй каждый элемент indexOf!=lastIndexOf
если есть, рандомь заново последний/первый и опять наша песня начинается с начала
можно попробовать сделать рандом, который минимизирует повторение - (random(5)+1)*(random(3)+1)+random(100)
Воспользуйся структурой данных "Set" гугл в помощь
Азамат Уразбаев И чем мне Сет поможет? я изучил что это, но как его применить чтобы это помогло?
package edu.javacourse.array;

public class MultiArray
{
public static void main(String[] args) {
// Объявим коснтанту для размера массива
int SIZE = 10;
// Создаем двумерный массив
char[][] graph = new char[SIZE][SIZE];

// Цикл по первой размерности (первые квадратные скобки)
for (int i = 0; i < SIZE; i++) {
// Цикл по второй размерности (вторые квадратные скобки)
for (int j = 0; j < SIZE; j++) {
graph[i][j] = '#';
}
}

// Теперь выводим массив на экран
// Цикл по первой размерности выводит строки
for (int i = 0; i < SIZE; i++) {
// Цикл по второй размерности выводит колонки - вывод одной строки
for (int j = 0; j < SIZE; j++) {
// Используем оператор print - без перехода на следующую строку
System.out.print(graph[i][j]);
}
// Переход на следующую строку
System.out.println();
}
}
}
Олег Землянский import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Solution {

private static int INF = Integer.MAX_VALUE / 2;

private int n; //количество вершин в орграфе
private int m; //количествое дуг в орграфе
private ArrayList adj[]; //список смежности
private ArrayList weight[]; //вес ребра в орграфе
private boolean used[]; //массив для хранения информации о пройденных и не пройденных вершинах
private int dist[]; //массив для хранения расстояния от стартовой вершины
//массив предков, необходимых для восстановления кратчайшего пути из стартовой вершины