• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

arrays of ArrayList confusion

 
Rajat Sarkar
Greenhorn
Posts: 18
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can we declare arrays of arrays of ArrayList?

i.e. ArrayList<String> myList=new ArrayList<String>[5]; // is this valid ??
 
Campbell Ritchie
Sheriff
Pie
Posts: 50171
79
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No.

I can't remember why, but a search of this forum will reveal old posts about the same subject.
You cannot create an array of parameterised type. So List[] myLists = new ArrayList[3]; is permissible. But List<Foo>[] myFooLists = new ArrayList<Foo>[3]; is not permissible. It has something to do with erasure rather than reification in generics, but it is better explained in the older posts.
 
Piet Verdriet
Ranch Hand
Posts: 266
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Rajat Sarkar:
Can we declare arrays of arrays of ArrayList?

i.e. ArrayList<String> myList=new ArrayList<String>[5]; // is this valid ??


Not like that, but yes, you can create arrays of Arraylists:



But I wouldn't advise to do it like that. The (rather ugly) casting will also cause the compiler to cough up warning(s) (not errors!). So I advise to use List<List<String>>, or something similar instead.
[ October 15, 2008: Message edited by: Piet Verdriet ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic