int配列(ジャワ)からヌル要素を削除する方法?

見ます:

私が持っているint要素を持つ配列を0私はそれらの要素を削除し、私の配列のサイズを減らしたいです。

私は、たとえば読んStringで配列を配列(ジャワ)から空の要素を削除し、私の場合には、それを適用します。

int[] in1 = {0, 0, 2, 0, 3};
int[] in1 = Arrays.stream(in1).filter(x -> x != 0).toArray(int[]::new);

残念ながら、私はエラーが表示されます。

この方法toArray()のタイプではIntStream、引数には適用されません(int[]::new)

私の質問は以下のとおりです。

  1. どのように私は自分の目標を達成することができますか?
  2. なぜフィルタリングすることができないint配列と同じ方法でString配列を?
GBlodgett:

プリミティブのためint[]に引数を指定しないでくださいtoArray()

in1 = Arrays.stream(in1).filter(x -> x != 0).toArray();

また、あなたは接頭辞いない旨の通知in1int[]すでに変数を定義していることから、再度、in1

ので、それが他の質問と同じように動作しない理由は、Arrays.stream(int[])リターンIntStreamバージョンを持っているがのtoArray()どの返しますint[]

使い方

Arrays.stream(new String[]{"This","", "will", "", "", "work"})

呼び出します。Arrays.stream(T[] array)これは、:

シーケンシャルを返しStream、そのソースとして指定された配列と。

またはStream<String>次に、使用してtoArray()からStreamクラスが呼び出すされます。この受け入れバージョン、IntFunction特定のタイプに変換しますこれを、ArraytoArray()からの引数を受け付けない方法Stream戻りますObject[]

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=118447&siteId=1