Java 我想在字符串数组中添加一个字符串

Java 我想在字符串数组中添加一个字符串,java,arrays,string,data-structures,Java,Arrays,String,Data Structures,我有一个类,在这个类中我有一个私有变量 private String[] stringArray = new String[100] 我在这个类中有一个这样的方法 public void addString (String addedString) {} 所以我想在字符串数组中添加一个字符串。 我不想使用列表,只想将它添加到一个具有预定数量的“空”元素的字符串数组中 我试过了 public void addString (String addedString) { stringArray +

我有一个类,在这个类中我有一个私有变量

private String[] stringArray = new String[100]
我在这个类中有一个这样的方法

public void addString (String addedString) {}
所以我想在字符串数组中添加一个字符串。 我不想使用列表,只想将它添加到一个具有预定数量的“空”元素的字符串数组中

我试过了

public void addString (String addedString) {
stringArray += addedString;
}
但我得到一个错误: 不兼容类型:无法将字符串转换为字符串[]

无法“添加到”数组:它是一个固定长度的数据结构

您可以再创建一个新数组,并设置最后一个元素:

stringArray = Arrays.copyOf(stringArray, stringArray.length + 1);
stringArray[stringArray.length - 1] = addedString;

但老实说,最好使用
列表(特别是
ArrayList
),它可以为您增加数组的长度(如果您添加了大量元素,也可以更有效地增加数组的长度)。

您实际上无法向数组中添加其他元素,您知道,它是一个数组,大小是固定的。里面已经有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++;
}
private string[]stringArray=新字符串[100];
私有int=0;
公共void addString(字符串addString){
stringArray[Mentaging+1]=addedString;//可以选择检查数组是否真的有足够的空间,比如Mentaging<100
有意义的++;
}
类数据{
私有最终字符串[]arr=新字符串[100];
私有int pos=-1;
公共空添加(字符串str){
如果(位置=0?arr[--pos]:空;
}
}
公共无效添加字符串(字符串添加字符串)
{
String[]old=stringArray;
stringArray=新字符串[old.length+1];
for(int i=0;i

这基本上是最优化的方法。但是你应该改用ArrayList。

我只是用它来理解一些概念,所以ArrayList会更好,但我想试着理解,如果没有ArrayList,我将如何做到这一点。是否可以使用for循环将字符串添加到字符串数组中?将“private method”编辑为“private variable”
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;
    }
}
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;
}