1. ホーム

[解決済み】配列に新しい要素を追加する方法は?

2022-03-26 10:57:06

質問

次のようなコードがあります。

String[] where;
where.append(ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1");
where.append(ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1");

この2つのアペンドはコンパイルされません。どうすれば正しく動作するのでしょうか?

解決方法は?

配列のサイズを変更することはできません。より大きな配列が必要な場合は、新しい配列をインスタンス化する必要があります。

より良い解決策は ArrayList は、必要に応じて拡張することができます。メソッド ArrayList.toArray( T[] a ) は、このような形で必要であれば、配列を返します。

List<String> where = new ArrayList<String>();
where.add( ContactsContract.Contacts.HAS_PHONE_NUMBER+"=1" );
where.add( ContactsContract.Contacts.IN_VISIBLE_GROUP+"=1" );

単純な配列に変換する必要がある場合は...

String[] simpleArray = new String[ where.size() ];
where.toArray( simpleArray );

しかし、配列で行うほとんどのことは、このArrayListでも行うことができます。

// iterate over the array
for( String oneItem : where ) {
    ...
}

// get specific items
where.get( 1 );