oi gente estou precisando de uma forcinha pra entender este assunto:
Meu professor me pediu pra que eu criasse um arquivo RandomAcessFile e que colocasse de forma aleatoria 100 numeros na faixa de 1 a 100 mas que esses números não se repitam e depois ele pede para gravar mas numeros dentro deste arquivo usando a função hash do modulo do resto e fazer o tratamento das colisões.
Ficou assim até agora:
public class GegerNumerorsAleatoriosSemRepeticaoHash {
public static void main(String[] args) throws IOException {
long inicio = System.currentTimeMillis();
int num;
final int tamanhoArquivo = 4;
File arquivo = new File("NumerosAleatorios.dat");
RandomAccessFile raf = new RandomAccessFile(arquivo, "rw");
for (int i=1; i<11; i++)
{
raf.seek(i*4);
raf.writeInt(0);
}
Random gerador;
int contador = 0;
do
{
num = new Random().nextInt(11)+1;
raf.seek(4*(num));
int valor = raf.readInt();
// System.out.println("numero gerado: " + valor);
if (valor == 0) {
raf.seek(4*(num));
raf.writeInt(num);
contador++;
System.out.println(num + " "+ contador);
}
}
while (contador<10);
//listar tudo do arquivo
raf.close();
long fim = System.currentTimeMillis();
System.out.printf("%55s\n","FINAL DA EXECUÇÃO DO ARQUIVOS!!!");
System.out.printf("%55s\n\n\n","TEMPO TOTAL..........: " + ((fim-inicio)/1000) + "SEGUNDOS!!!");
}
}
alguem pode me ajudar por favor, eu estou boiando no assunto???!!!