哪个更有效,将ArrayList作为intent extra发送,或者使用toArray()方法将ArrayList转换为整数数组,然后使用putIntArrayExtra()发送它?
前:
Intentname.putIntArrayListExtra(ArrayList);
或者:
Intentname.putIntArrayExtra(ArrayList.toIntArray());
答案 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
提供的帮助方法/细节。