В android-е существуют механизм передачи данных между приложениями — использование объектов Intent.  Внутрь интента можно положить данные, которые будут упакованы в объект Bundle. Внутри Bundle данные будут храниться в Map. Так как Intent предназначен для передачи между процессами, то android сериализует/десериализует содержимое интента. В процессе сериализации android  проходит по Map, получая каждое значение. Объекты, реализующие интерфейс List или Map, будут преобразованы в объекты супертипа для более эффективной сериализации. При десериализации любой объект типа List или Map будет преобразован в ArrayList или  HashMap, то есть вы можете передавать в Intent-е, например, объект LinkedList-а, но получать будет объект ArrayList-а. Так уж устроен andrоid =) При разработке приложений стоит учитывать такое поведение.