[解決済み] Javaで整数の配列を切り出すには?
2022-02-19 16:03:09
質問内容
Nは配列のサイズになります。
int numArray [] = new numArray[N];
しかし,配列の中身は1から正数Nまでのすべての数を保持することになるので,このforループの後ではサイズNの配列全体が一杯になることはありません.そこで、forループの後に、配列をトリミング(サイズ変更)して、配列の中に空のスロットがなくなるようにしたいのです。
例:
N = 5とする。 つまり、forループの後、1から5までの全ての数字がこのように配列に入ることになる。
int arr[] = new int[N];
int arr[0]=1;
int arr[1]=3;
int arr[2]= null;
int arr[3]= null;
int arr[4]= null;
さて、forループの後にトリミング(リサイズ)をして、nullを保持しているインデックスがなくなり、そして配列になるようにしたいのです。
int arr[0]=1;
int arr[1]=3;
配列のサイズが2になりました。
どのように解決するのですか?
Javaでは、一度作成した配列のサイズを変更することはできません。 しかし、必要なサイズの配列を新たに作成することは可能です。
もう一つ重要な点は、配列を作成する際に
プリミティブ
:
int
. プリミティブはオブジェクトではないので、値を代入することはできません。
null
をプリミティブに追加します。
の配列を作成する必要があります。
java.lang.Integer
を設定したい場合、その中のエントリーを
null
.
Integer[] numArray = new Integer[N];
というJavaの機能のおかげで
オートボックス
で動作するほとんどすべてのコードは、プリミティブな
int
の値も動作します。
Integer
の値です。
ステップ
-
使用する
Integer[]
の代わりにint[]
-
必要なサイズを計算する(カウントしない
null
のエントリを削除します) - 必要なサイズの新しい配列を確保する
-
古い配列をループし、すべての非をコピーします。
null
を新しい配列にコピーします。
コード
Integer[] oldArray = ...;
// Step 2
int count = 0;
for (Integer i : oldArray) {
if (i != null) {
count++;
}
}
// Step 3
Integer[] newArray = new Integer[count];
// Step 4
int index = 0;
for (Integer i : oldArray) {
if (i != null) {
newArray[index++] = i;
}
}
関連
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】Eclipseで「公開型 <<classname>> は独自のファイルで定義する必要があります」エラー【重複あり
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み] StringBuilderをクリアまたは空にするにはどうすればよいですか?重複] [重複] [重複] [重複] [重複] [重複
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません