2012-08-06 42 views
0

我想知道是否有人可以回答我在編程時使用哪種更好實踐的相當不好的問題。Android二維數組和ArrayList最佳實踐?

我知道使一個2維陣列I可以使用:

ArrayList<ArrayList<String>> myArray = new ArrayList<ArrayList<String>>(); 

String[][] myArray2; 

回答

8

在在其中顯示的方式使用的ArrayList是完全正常。但是,如果您確實需要數組在運行時增長和縮小,則只能使用Array列表。如果您不確定是否需要數組增長或縮小,那麼繼續並使用ArrayList來啓動。如果你不需要數組是動態的,你應該使用String [] []。字符串[] []在分配後不能增大或縮小。

如果您的應用程序性能密集,我強烈建議嘗試編寫應用程序,以便使用String [] []。更重要的是,儘量避免大量的字符串操作,因爲這會導致大量的分配(並因此導致垃圾回收)。如果您可以使用CharBuffer [] [],您將能夠避免對象分配。同樣,如果你正在編寫一個簡單的應用程序,並且你的應用程序分配的內容並不重要(因此最終會導致垃圾回收),但使用ArrayList可以更容易處理。

既然您認爲自己是一個noob,您可能只想繼續前進,並開始使用ArrayList,因爲它更容易處理。

此外,這不是一個Android問題,只是更多的Java問題。

+0

乾杯Andi,通過您的探索,我可能不得不使用ArrayList方法。 基本上,應用程序是一個rss提要閱讀器,但是即時消息將rss提要列表保存到文本文件中,並將其內容加載到全局數組中,用戶應該被允許添加和刪除列表中的項目。 即時通訊仍然不確定這是否是最好的方式,因爲我可能會遇到問題,當我嘗試從文本文件中刪除特定的RSS源時!例如當有5個註冊時,第一個RSS提供。 – 2012-08-06 13:22:01

0

由於列表的大小可能會增加,如果您不確定,它們是最佳解決方案,您的二維數據結構將會有多大。如果你知道這個結構有多大,那就用正常的數組,所以List對象產生的小開銷不會是一個問題。