Regarding :

```
List<String> mystring = new ArrayList<String>();

```

Correct me if Im wrong:

`List` is a `Collection`, and could also be `Set`, `Queue` or `Map` also.

`String` is a type.

`mystring` is the name of this variable, and will be a generic collection of `String` objects.

`ArrayList` is a ? and could also be ?

If I'm talking with another developer, what do I call the `ArrayList` thing?