Bom dia a todos,
Estou tendo problemas para organizar meu ArrayList de acordo com dois parâmetros. O exercício tratasse de um escalonador de processos com Round Robin, utilizando prioridade e entrada como parâmetros principais. Quem tem a menor entrada e a maior prioridade, é executado primeiro. A questão é que na hora de cadastrar esses “processos”, eles não são cadastrados na ordem correta e sim numa ordem aleatória. Então resolvi fazer dois métodos bubble sort para ordena-los assim que eu acabo de criar o ArrayList.
Fiz os testes só com 2 elementos no array e recebi o erro Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
. Gostaria de saber se existe uma maneira mais fácil para organiza-lo utilizando esses dois parâmetros.
O primeiro elemento do Array teria que ser: MenorEntrada e MaiorPrioridade. O segundo poderia ter a Entrada igual a do primeiro mas teria que ter uma prioridade menor.
Obs: Entrada varia de 0 até n
e Prioridade varia de 1 até 9.
Abaixo segue o código de ordenação que havia feito.
public void ordenarArrayEntrada() {
for (int i = 0; i < meusProcessos.size(); i++) {
for (int j = 0; i < (meusProcessos.size() - 1); j++) {
if (meusProcessos.get(j).getEntrada()
> meusProcessos.get(j + 1).getEntrada()) {
Processos aux = meusProcessos.get(j);
meusProcessos.add(j, meusProcessos.get(j + 1));
meusProcessos.add(j + 1, aux);
}
}
}
}
public void ordenarArrayPrioridade() {
for (int i = 0; i < meusProcessos.size(); i++) {
for (int j = 0; i < (meusProcessos.size() - 1); j++) {
if (meusProcessos.get(j).getPrioridadeDin()
< meusProcessos.get(j + 1).getPrioridadeDin()) {
Processos aux = meusProcessos.get(j);
meusProcessos.add(j, meusProcessos.get(j + 1));
meusProcessos.add(j + 1, aux);
}
}
}
}
Desde já,
Agradeço a ajuda!