将Integer ArrayList作为intent extra发送的最佳方法是什么?

时间:2014-07-08 17:44:27

标签: java android performance

哪个更有效,将ArrayList作为intent extra发送,或者使用toArray()方法将ArrayList转换为整数数组,然后使用putIntArrayExtra()发送它?

前:

Intentname.putIntArrayListExtra(ArrayList);

或者:

Intentname.putIntArrayExtra(ArrayList.toIntArray());

1 个答案:

答案 0 :(得分:1)

putIntArrayExtra不存在 - 我认为你的意思是putExtra(String, int[])

当您调用方法时,两者应该具有相同的运行时,因为它们都归结为Android源的Bundle.java中的相同行:

//mMap is of type ArrayMap - also in the Android source
mMap.put(key, value);

那就是说,你要求的“效率”几乎没有足够的描述性来给出准确的答案。 ArrayList占用更多内存,序列化和反序列化更慢,具有自定义(和非常量时间......但更准确!)hashcode()实现等。

但是,最终它取决于您在创建此Intent之前以及在另一侧检索它之后使用此数组(List或不使用List)。如果可能,将数据结构保持为int []以开始(因此永远不会调用toIntArray()),除非您需要ArrayList提供的帮助方法/细节。