1

我是一名 C++/C# 开发人员,但我是 Java 新手。我正在尝试为基本类中的字符串数组实现 setter 和 getter,如下所示:

private String[] values = new String[35];

public String get_val(int idx) 
{
    return values[idx];
}

public void set_val(int idx, String val) 
{
    values[idx] = val;
}

当我调用该set_val函数时,它将更新第 n 个字符串的值。运行如下代码后:

row.set_val(0, row.get_val(0) + "1");
row.set_val(0, row.get_val(1) + "2");
row.set_val(0, row.get_val(2) + "3");

string foo = row.get_val(0);

到 时string foo = row.get_val(0);,第 0 个值恢复到其原始值。我是否缺少数组和 Java 的概念?这似乎是非常直接的代码。

提前致谢!

4

1 回答 1

1

这应该可以正常工作,但我会认真考虑使用 java 内置的 ArrayList 结构。它是预煮成java的,如果你初始化大小,

private List<String> strings = new ArrayList<String>(35);

你应该得到相同的(如果不是更好的运行时性能,并且不需要做任何边界检查)

private final MAX_SIZE = 35;

public String get_val(int idx)
{
    if(idx<strings.size())
        return strings.get(idx);
    else
        return null;
}

public void set_val(int idx, String val)
{
    if(idx<MAX_SIZE)
        strings.add(val,idx);
    else
        //throw an exception if that's how you really want to do it
}
于 2013-02-28T15:31:38.210 回答