我有一个类,并且在该类中有一个私有变量。
private String[] stringArray = new String[100]
在那个类中我有一个这样的方法
public void addString (String addedString) {}
所以我想在该字符串数组中添加一个字符串。 我不想使用列表,而只是将其添加到具有预定数量的“空”元素的字符串数组中。
我尝试过
public void addString (String addedString) {
stringArray += addedString;
}
但是我收到一个错误错误: 不兼容的类型:无法将字符串转换为String []
答案 0 :(得分:0)
您不能“添加到”数组:它是固定长度的数据结构。
您可以再创建一个新数组,并设置最后一个元素:
stringArray = Arrays.copyOf(stringArray, stringArray.length + 1);
stringArray[stringArray.length - 1] = addedString;
但是,老实说,最好改用List
(特别是ArrayList
),它可以为您增加数组的长度(如果要添加很多,这样做的效率也更高)元素)。
答案 1 :(得分:0)
您实际上不能将另一个元素添加到数组中,您知道,它是一个数组,它是固定大小的。里面已经有100个字符串。如果确实需要使用数组而不是列表,则必须记住数组中包含有意义数据的最后一个元素,并替换下一个:
private string[] stringArray = new String[100];
private int meaningful = 0;
public void addString (String addedString) {
stringArray[meaningful+1] = addedString; // optionally check, whether the array really has enough space like meaningful < 100
meaningful++;
}
答案 2 :(得分:0)
class Data {
private final String[] arr = new String[100];
private int pos = -1;
public void add(String str) {
if(pos < arr.length - 1)
arr[++pos] = str;
}
public String remove() {
return pos >= 0 ? arr[--pos] : null;
}
}
答案 3 :(得分:0)
public void addString (String addedString)
{
String[] old = stringArray;
stringArray = new String[old.length + 1];
for(int i = 0; i < old.length; i++)
stringArray[i] = old[i];
stringArray[stringArray.length] = addedString;
}
那基本上是最优化的方法。但是您应该改用ArrayList。