1

私はJavaの初心者なので、これがばかげた質問のように思えたり、Java以外の方法で物事を行っている場合は申し訳ありません(私はCやPerlなどの言語に精通しています)。

私は、Web サーバーからデータを定期的に更新し、実行間でデータを共有設定として保存する Android アプリに取り組んでいます。

データ (共有設定またはオンライン更新から読み取られたもの) は、アプリのさまざまなポイントで使用される配列に入ります。

ここでの問題は、サーバーから返される内容に応じて、配列内の要素の数を増減する必要があることです。だから私は、異なるサイズの配列を生成する方法を見つけようとしています(そして失敗しています)。

Javaでは配列の長さが固定であることを知っているので、配列を削除してから新しい次元で再作成する方法が必要だと思っています(2つの間でデータを保持する必要はありません)。

悲しいことに、それは明らかに私の推測ほど簡単ではありません

    String[] myArray = new String[10];
    [...]
    myArray = new String[100];

たとえば、私の IDE は恐怖で手を上げます。

助言がありますか?ありがとう。

4

4 に答える 4

2

ArrayList を使用するだけです。

ArrayList<String> myArray = new ArrayList<String>();
于 2013-10-16T16:22:14.753 に答える
2

このコード:

String[] myArray = new String[10];
[...]
myArray = new String[100];

は構文的に完全に正しいです。これを確認するには、お気に入りのテキスト エディタ (IDE ではない) で小さなテスト Java ファイルを作成し、名前Test.javaを付けて貼り付けることをお勧めします。

public class Test {
    public static void main(String[] args) {
        String[] arr = new String[10];
        System.out.println("Size: " + arr.length);
        arr = new String[100];
        System.out.println("Size: " + arr.length);
    }
}

次に、コマンド プロンプトからコンパイルします (完全に正常にコンパイルされます)。コマンド プロンプトから実行します。

$ vim Test.java
...
$ javac Test.java
$ java Test
Size: 10
Size: 100

IDE で問題が発生している場合は、IDE が間違っているか、コードのどこかにエラーがあります。

そうは言っても、配列を削除/サイズ変更する必要がある場合、配列は適切なデータ構造ではなくList、より良いデータ構造である可能性があります。具体的にはArrayList、より具体的にはArrayList<String>

List<String> data = new ArrayList<String>();

次に、アイテムを追加したり、インデックスで取得したり、削除したりできます。

于 2013-10-16T16:29:23.390 に答える