1

私は C++/C# 開発者ですが、Java は初めてです。次のように、基本クラス内の文字列の配列にセッターとゲッターを実装しようとしています。

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 に答える