Java 不断变化的数组大小

Java 不断变化的数组大小,java,android,Java,Android,我有一个字符串数组,但数组中的值不断变化。 除了删除项和更改索引位置之外,还有其他方法管理数组吗 public String[] deviceId=null; deviceId=new String[deviceCount]; 在我的例子中,deviceCount是随着新设备的出现而变化的。 因此,我需要不断更改数组大小并添加或删除项,您可以使用列表。它的大小取决于您放入的对象数量 List<String> list = new ArrayList<String

我有一个字符串数组,但数组中的值不断变化。 除了删除项和更改索引位置之外,还有其他方法管理数组吗

   public String[] deviceId=null; 
   deviceId=new String[deviceCount];
在我的例子中,deviceCount是随着新设备的出现而变化的。
因此,我需要不断更改数组大小并添加或删除项,您可以使用列表。它的大小取决于您放入的对象数量

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));
}
List List=newarraylist;
公共静态void main(字符串[]args){
list.add(“string 1”);//将字符串添加到列表中
列表。添加(“字符串2”);
System.out.println(list.get(0));//从列表中获取值
System.out.println(list.get(1));
}

-在Java数组中,无论其
是在类级别还是在本地级别声明的
都在创建时初始化

-一旦在Java中定义了
数组的大小,就不能对其进行更改

-最好使用类似集合的列表

-它可以灵活地添加和删除其中的项目,还可以在列表中的所需位置添加项目


-列表是Java中的一个
接口
,您可以使用它的
具体子类
,如ArrayList、LinkedList等。

使用ArrayList代替String[]。。 您还可以轻松地将ArrayList转换为字符串[],以便最终输出为

ArrayList<String>  mStringList= new ArrayList<String>();
mStringList.add("ann");
mStringList.add("john");
String[] mStringArray = new String[mStringList.size()];
mStringArray = mStringList.toArray(mStringArray);
ArrayList mStringList=new ArrayList();
mStringList.add(“ann”);
mStringList.add(“john”);
字符串[]mStringArray=新字符串[mStringList.size()];
mStringArray=mStringList.toArray(mStringArray);

不确定我是否正确回答了这个问题,但如果大小将动态变化,您可以使用ArrayList或LinkedList。

您可以使用ArrayList而不是使用数组。您可以添加任意数量的项目,而无需重新调整阵列的大小,并且一旦不再需要某个项目,就可以将其删除。以下是ArrayList概述和一些使用它们的示例的链接:


希望这有帮助。

如果您知道设备的最大数量。然后可以定义一个最大大小的数组

String[]  deviceId = new String[MAX_DEVICE_COUNT];
或者简单地列出一个清单

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

不用担心性能,阵列的性能就更高。

是否需要使用阵列。如果不使用
动态数组
链表
我更喜欢使用ArrayList。我将研究itlearn关于ArrayList和其他集合对象的内容