我有一个字符串数组,但数组中的值不断变化。 除了删除项目和更改索引位置之外,还有其他管理阵列的方法吗?
public String[] deviceId=null;
deviceId=new String[deviceCount];
在我的情况下,deviceCount随着新设备的变化而变化。 所以我不断需要更改数组大小并添加或删除项目
答案 0 :(得分: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));
}
答案 1 :(得分: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);
答案 2 :(得分:1)
您可以使用ArrayLists,而不是使用Arrays。您可以根据需要添加任意数量,而无需重新调整数组大小,一旦不再需要项目,就可以将其删除。以下是ArrayLists概述的链接以及使用它们的一些示例:http://www.tutorialspoint.com/java/java_arraylist_class.htm
希望这有帮助。
答案 3 :(得分:1)
如果您知道设备的最大数量。然后,您可以定义具有最大大小的数组。
String[] deviceId = new String[MAX_DEVICE_COUNT];
或者只是简单地使用List。
List<String> deviceId=new ArrayList<String>();
使用数组时不要担心性能。
答案 4 :(得分:0)
- 在Java数组创建时,initialized
无论是declared
在类级别还是在本地级别。
- 大小定义为array in Java it can't be changed
。
- 最好使用像List这样的Collection。
- 它可以灵活地添加和删除其中的项目,也可以在列表中所需位置的项目中进行。
- 列表是Java中的Interface
,您可以使用其concrete sub classes
类似ArrayList,LinkedList..etc。
答案 5 :(得分:0)
不确定我是否正确地提出了问题,但如果大小会动态变化,您可以使用ArrayList或LinkedList。