2013-10-07 82 views
-5

我有一個字符串數組,但數組中的值不斷變化。 除了刪除項目和更改索引位置之外,是否還有其他方式來管理數組?連續更改數組大小

public String[] deviceId=null; 
    deviceId=new String[deviceCount]; 

在我的情況下,deviceCount隨着新設備的出現而變化。 所以我不斷需要更改數組大小並添加或刪除項目

+1

爲什麼張貼兩次? – flx

+0

是否需要使用數組?如果不使用'動態數組'或'鏈表' – Prateek

+0

我更喜歡使用arrayList – upog

回答

1

使用ArrayList代替的String [] .. 而且你還可以輕鬆地投ArrayList的爲String []爲你的最終輸出爲

ArrayList<String> mStringList= new ArrayList<String>(); 
mStringList.add("ann"); 
mStringList.add("john"); 
String[] mStringArray = new String[mStringList.size()]; 
mStringArray = mStringList.toArray(mStringArray); 
1

您可以使用列表。它根據您放入的對象數量來更改大小。

List<String> list = new ArrayList<String>; 
public static void main(String[] args) { 
    list.add("string 1"); //Add strings to the list 
    list.add("string 2"); 
    System.out.println(list.get(0)); //Get the values from the list 
    System.out.println(list.get(1)); 
} 
0

-在Java數組initialized在其創作無論是其declared在類級別或在地方一級的時間。

-一旦尺寸被定義爲array in Java it can't be changed

-它更好地使用集像列表。

-它可以靈活地添加和刪除其中的項目,並且還可以在列表中所需位置的項目上。

-列表是一個Interface在Java中,你可以使用它的concrete sub classes像ArrayList,LinkedList..etc。

0

不知道我是否得到了正確的問題,但你可以使用ArrayList或LinkedList(如果大小將動態變化)。

1

而不是使用數組,您可以使用ArrayLists。您可以添加儘可能多的數據,而無需重新調整數組的大小,並且一旦不再需要可以刪除的項目。這裏是ArrayLists的概述和使用它們的一些示例的鏈接:http://www.tutorialspoint.com/java/java_arraylist_class.htm

希望這會有所幫助。

1

如果您知道設備的最大數量。然後你可以定義一個最大尺寸的數組。

String[] deviceId = new String[MAX_DEVICE_COUNT]; 

否則簡單地去一個列表。

List<String> deviceId=new ArrayList<String>(); 

不用擔心性能,對於數組來說太重要了。