A generic list must have a type declared. A generic list, in this case a list of strings, is created as follows:
$list = New-Object System.Collections.Generic.List[String]
An ArrayList is created in a similar manner. The ArrayList cannot have type declared:
$arrayList = New-object System.Collections.ArrayList
Once created, the ArrayList may be used in much the same way as a generic list.