3

文字列配列の Null 値を削除する方法

{ ,-2,3, ,-4,+5, ,66...} のように

間にあるこれらの null 値を削除し、配列のサイズを変更する必要があります

  1. リストを使いたくない

  2. 新しい配列を作成したくない

簡単なコードで可能かどうか教えてください。ありがとうございました。

4

7 に答える 7

9

新しい配列を作成したくない場合は、できません。単純な配列から項目を追加または削除することはできません(のようにstring[])。

達成したいことを達成するための最も簡単な方法 (2 番目の要件を削除した場合) は次のようになります。

  1. ソース配列の null 値の数を数えます
  2. ソース配列から手順 1 の null の数を引いた長さの新しい配列を作成します。
  3. ソース配列からすべての非 null 値を新しい配列にコピーします
  4. (オプション) ソース配列への参照 (例: srcArray) を新しい配列に設定します。
于 2010-02-16T13:20:50.867 に答える
0

続行する方法を決定する前に、操作している配列への参照を誰が保持しているかを実際に考える必要があります。

配列が他のコードによって参照されていない場合(クラスのメンバーとして、ラムダ内のキャプチャされた変数として、またはどこかのコレクション内)、新しい配列の作成について心配する必要はありませんその場合、 @Codesleuth@Guffaが提案するようなものを使用します。

ただし、この同じ配列への参照を保持する他のコードが存在する可能性がある場合、それらの他の場所に保持されている参照を安全に識別して更新できない限り、運が悪いことになります。これを行うのは難しいことです。参照が保持されている他のすべての場所をいつでも更新できると想定して、十分に注意する必要があります。

于 2010-02-16T13:39:49.250 に答える