Olá pessoal sou meio novo no Java e tenho que fazer uma método com a seguinte assinatura “public static void ordenar(List list)”, utilizando o bubble sort,
porem no segundo exercício eu tenho que passar para esse método uma ArrayList de 1000 elementos selecionados randomicamente (para testar estou fazendo com 10) mas ele esta dando os seguintes erros.
Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at EX28.EX28.ordenar(EX28.java:24)
at EX28.EX28.main(EX28.java:57)
Java Result: 1
segue meu código.
/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package EX28;
import java.lang.Integer;
import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultListModel;
/**
*
-
@author Guilherme
*/
public class EX28 {public static void ordenar(List list) {
ArrayList<Integer> al = (ArrayList<Integer>) list; imprimir(al); for (int i = 0; i < al.size() - 1; i++) { for (int j = 0; j < al.size() - 1; j++) { if (al.get(i) > al.get(j + i)) { swap(al, j, j + 1); } } } imprimir(al);
}
private static void swap(ArrayList a, int i, int j) {
int temp = a.get(i); a.set(i, a.get(j)); a.set(j, temp);
}
public static void imprimir(ArrayList list) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("<--------------------------------------------->");
}public static ArrayList criarArrayList() {
ArrayList list = new ArrayList();
for (int i = 0; i <= 9; i++) {
list.add((int) ((int) 1 + (Math.random() * 10)));
}
return list;
}public static void main(String[] args) {
ArrayList list = criarArrayList();
imprimir(list);
ordenar(list);
}
}