Я пытаюсь представить сеть Ad Hoc, используя структуру матрицы смежности. Для этого я создаю ArrayList внутри другого ArrayList.Как добавить нулевой объект в ArrayList внутри ArrayList
Когда я добавляю новую вершину к графику, я создаю новый ArrayList (внутри супер ArrayList), и тогда у меня есть цикл для добавления нового нулевого объекта в каждый ArrayList, однако размер ArrayLists не увеличивается правильно, и я не могу понять, почему.
Вот мой код:
public class Matrix {
public ArrayList<ArrayList<Edge>> graph;
public ArrayList<Vertex> verticies;
public ArrayList<Edge> edges;
public Matrix() {
graph = new ArrayList();
verticies = new ArrayList();
edges = new ArrayList();
}
public Matrix(ArrayList<Vertex> verticies, ArrayList<Edge> edges) {
this.verticies = verticies;
this.edges = edges;
}
public void addVertex(Vertex v) {
verticies.add(v);
graph.add(new ArrayList());
for(int i=0; i<graph.size()-1; i++) {
graph.get(i).add(null);
}
}
Любая помощь будет принята с благодарностью.
Спасибо за вашу помощь, однако теперь ArrayLists уменьшают размер на 1 каждый раз (например, если graph.size() равен 5, graph.get (1) .size() равен 5, graph.get (2) .size() равно 4 и т. д. На самом деле меня озадачивает D: –
@AlexGlassman Это потому, что вы добавляете 'null' во все предыдущие списки каждый раз, когда вы создаете новый. Таким образом, у тех, которые были созданы вначале, будет больше' null'. Я обновил ответ с предложением об этом. –
Хорошее обходное решение, однако мне нужно изменить тип моих внутренних массивов ArrayLists на Object. Любой путь вокруг этого? –