I was reading online and I saw a declaration for an `ArrayList` as 

```
ArrayList[] graph = new ArrayList[numCourses];

```

Traditionally, I thought that `ArrayList`s were always declared as 

```
ArrayList<type> graph = new ArrayList<type>();

```

What's the difference between these two? The rest of the code seemed to utilize the same functions from the `ArrayList` class, but with specific indices.