ArrayLists are even more space inefficient when used on 64bit to store primitive elements because of the 64bit wide memory references as opposed to 32bit references on 32bit machines, and boxing.
See this for more details:
http://blogs.msdn.com/joshwil/archive/2004/04/13/112598.aspx