добавление необработанного элемента, такого как ar1.add (0), нормально, не вызывает ошибку, но при попытке добавить ar1.add (s) выдает ошибку
** ошибка не находится в ar Ошибка массива находится в массиве ar1, который имеет экземпляр в методе **
, есть ли какое-либо обходное решение?
`
package graph;
import java.util.*;
public class PrintAllPathUsingDfs {
static ArrayList<Integer> arr[];
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// int V =s.nextInt();
// int E =s.nextInt();
arr = new ArrayList[4];
//arrays cant be generic in java
for(int i =0 ; i< 4;i++)
{
arr[i]=new ArrayList<Integer>();
}
arr[0].add(1);
arr[0].add(2);
arr[0].add(3);
arr[2].add(0);
arr[2].add(1);
arr[1].add(3);
int src = 2;
int d =3;
ArrayList<Integer> ar=new ArrayList<Integer>();
printAllPaths(src, d,ar);
}
static void printpath(ArrayList<Integer> ar)
{
for(int i = 0; i<ar.size();i++)
{
System.out.print(ar.get(i)+" ");
}
System.out.println();
}
static void printAllPaths(int s , int d,ArrayList<Integer> ar)
{
Iterator<Integer> it = arr[s].listIterator();
ArrayList<Integer> ar1=new ArrayList<>();
// for(int i=0;i<ar.size();i++)
// {
// ar1.add(ar.get(i));
// }
ar1.add(0);// this adds works
ar1.add(s);// but this is not working throw error
if(d==ar.get(ar.size()-1))
{
printpath(ar);
}
while(it.hasNext())
{
printAllPaths(it.next(),d,ar);
}
}
}
`