Olá! Bom dia, boa tarde, ou boa noite pra você que está lendo. Então, estou trabalhando em um programa para faculdade que tem como objetivo criar vértices e suas arestas, e tinha pensado em uma forma bem engenhosa de fazer isso, mas acabei empacando em um problema com um for.
case 2:
for (int i = 0; i < CriaGrafo.getTotal(); i++) {
grafo = grafos.get(i);
for (int o = 0; o < CriaGrafo.getTotal(); o++) {
System.out.println("O vértice "+i+" está ligado ao vértice "+o+"? (1-Sim _ 2-Não)");
num1 = in.nextInt();
if (num1 == 1) {
grafo.adjacente[o] = true;
} else {
grafo.adjacente[o] = false;
}
}
}
Este é o trecho do código que está dando problema, mas compila corretamente e dá este erro:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at Grafo.main(Grafo.java:31)
Eu pesquisei um pouco sobre e encontrei umas respostas q não me ajudaram tanto, mas me fizeram entender o problema, aparentemente eu estou tentando acessar uma posição do "grafo.adjacente" que não existe, mexi de diversas formas, mas não consegui arrumar isto, -1 em alguns lugares, +1 em outros, etc.
E talvez tenha algo a ver com isto:
public class CriaGrafo {
private static int total = 0;
private int num;
boolean adjacente[] = new boolean [total];
public CriaGrafo (int Numero) {
total += 1;
this.num = Numero;
}
Mas também não tenho certeza, se alguém puder me dar um alô sobre a resolução desse problema ficaria mto agradecido.