Java 如何将字符串添加到数组中?

Java 如何将字符串添加到数组中?,java,arrays,string,methods,Java,Arrays,String,Methods,我一直在想如何将字符串添加到数组中。 我有一个代表列表的类,我想通过调用addTo将“cup”添加到列表中。 我尝试过这个方法,但它会填充整个数组,然后当再次调用该方法时,它会覆盖整个数组: private String[] option; private int position; public Menu() { option = new String[0]; position = 0; } public void addTo(java.lang.String optio

我一直在想如何将字符串添加到数组中。 我有一个代表列表的类,我想通过调用
addTo
将“cup”添加到列表中。 我尝试过这个方法,但它会填充整个数组,然后当再次调用该方法时,它会覆盖整个数组:

private String[] option;

private int position;

public Menu()
{
    option = new String[0];
    position = 0;
}

public void addTo(java.lang.String option)
{
    option = new String[20];
    ++position;
    option[position] = option;

}
希望这样更好。

这行

option = new String[20];
正在清除您的列表

例如,您应该仅在构造函数中初始化列表。 您的菜单类可以是:

public class Menu{
    private final int LIMIT = 20;
    private String[] option;
    private int position;

    public Menu()
    {
        option = new String[LIMIT];
        position = 0;
    }

    public void addTo(String item)
    {
        if(position == LIMIT)
        {
            // We do not want a IndexOutOfBoundsException here
            return;
        }
        option[position++] = item;
    }

    public void printList(){
        for(int i = 0; i< LIMIT; i++)
        {
            System.out.println( i + ": " + option[i] );
        }
    }

    public static void main(String[] args)
    {
        Menu m = new Menu();
        m.addTo("book");
        m.addTo("cup");
        m.addTo("test");

        m.printList();
    }

}
公共类菜单{
私人最终整数限额=20;
私有字符串[]选项;
私人职位;
公共菜单()
{
选项=新字符串[限制];
位置=0;
}
公共void addTo(字符串项)
{
如果(位置==限制)
{
//我们不希望这里出现IndexOutOfBoundsException
返回;
}
选项[position++]=项目;
}
公共作废打印列表(){
对于(int i=0;i
测试和工作

致以最良好的祝愿


米格尔

你目前的想法是什么
option=newstring[20]
does?@immibis它将选项数组的元素设置为20。它创建一个新数组(
new String[20]
,它创建一个数组并返回对它的引用),然后将引用分配给
option
option=
)@midknight以及“旧”会发生什么情况
option
array?@Tom我之前声明过它,但没有初始化它的私有字符串[]选项;当然,我会编辑帖子并给出helper类的完整代码。那么
LIMIT
应该是什么?数组大小?@midnight
LIMIT
不应为20,如果要向数组中添加20个元素,则应为19。这就是为什么我问他,因为限制检查不是“好的”。好的,但代码仍然替换数组中的所有内容。我希望在调用方法时只添加一次,例如addTo(“cup”);增补(“书”);然后它将打印cup bookLIMIT,在本例中,它是一个常数,您应该根据列表的大小创建它。初始化类构造函数中的选项[]。方法addTo()只应将字符串添加到选项[]数组中。使用option=new String[20]时,将丢失对旧数组的引用。