左の残りの部分から配列に新しい要素を追加すると、Javaで1ステップ右にシフトします

コンスタンチンF

私の質問は、配列に要素を追加したいということです。
'createArray'メソッド
メソッド 'addElementsToArray'のおかげで配列の長さは3
です 'this.array [0]'の位置に新しい要素追加します配列の残りの位置が使用され
いる場合、最初の位置を空にするために1ステップ右にシフトします新しい要素のために。
配列の長さが10または100に等しい場合はどうなりますか?
配列の長さに関係なく、使用するコード行を少なくする方法はありますか?
ありがとうございました

private int[] array;

public createArray(int m){
    this.array = new int[m];
}
public void addElementsToArray(int element){
        try {
            for (int i=0; i<=this.getArray().length; i++) {
                if (this.getArray()[i] == 0) {
                    this.getArray()[i] = element;
                    System.out.println("1");
                    break;
                }else if(this.getArray()[i] != 0 && this.getArray()[i + 1] == 0) {
                    int vault = this.getArray()[i];
                    if (this.getArray()[i + 1] == 0) {
                        this.getArray()[i + 1] = vault;
                        this.getArray()[i] = element;
                        System.out.println("2");
                        break;
                    }
                }else if(this.getArray()[i] != 0 && this.getArray()[i + 1] != 0) {
                    if (this.getArray()[i + 2] == 0) {
                        int vault = this.getArray()[i];
                        this.getArray()[i + 2] = this.getArray()[i + 1];
                        this.getArray()[i + 1] = vault;
                        this.getArray()[i] = element;
                        System.out.println("3");
                        break;
                    }
                }
            }
        }catch(ArrayIndexOutOfBoundsException e){
            System.out.println("This Stack is Full");
        }
    System.out.println(Arrays.toString(this.getArray()));
}
ラッフルバッフル

アイデアは、最初の要素から最後の要素まで配列をループして、最初に出現する0を探すことです。見つからない場合は、配列がいっぱいです。その場合は、を使用System.arraycopyしてすべてを0から識別された位置1の右にシフトしてから、新しい要素を位置0に挿入します。

public void addElementsToArray(int element){  
  for(int i=0; i<array.length; i++)
  {
    if(array[i] == 0)
    {
      System.arraycopy(array, 0, array, 1, i);
      array[0] = element;
      return;
    }
  }
  throw new IllegalStateException("Array is full");
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaスクリプト。配列の最後に新しい値を追加し、残りをシフトします

分類Dev

画像をナビゲーションバーの左側に配置し、リストの残りの部分を右側に配置することはできますか?

分類Dev

配列に新しいバイトを追加し、残りのバイトをシフトします

分類Dev

配列内のすべてのオカレンスを削除し、残りを左にシフトするにはどうすればよいですか?

分類Dev

配列から最初の2つを選択し、残りの部分に+(プラス)を追加します

分類Dev

配列要素を削除し、残りを左にシフトします

分類Dev

java-配列の要素を任意の位置から削除し、残りの要素をシフトする

分類Dev

スクリプトのPATHにディレクトリを追加して、呼び出し元のシェルとセッションの残りの部分に影響を与えるにはどうすればよいですか?

分類Dev

配列要素を次の配列と比較し、要素が新しいときに最初からやり直します

分類Dev

テキストファイルの行のリストを削除またはスキップして、残りの行を新しいテキストファイルに印刷するにはどうすればよいですか?

分類Dev

インラインブロック要素をテキスト行の残りの部分にまたがらせるにはどうすればよいですか?

分類Dev

配列のハッシュ内の配列に新しい要素を追加する

分類Dev

既存のテーブルから新しいテーブルを作成し、スプレッドシートに新しい列を追加する方法

分類Dev

配列内の要素を削除し、要素を左にシフトしてギャップを埋めます

分類Dev

Javaで要素とその総数(適切に)からマップを作成するために、配列リストからアイテムをプルしてカウントするにはどうすればよいですか?

分類Dev

Perl6:1つの要素を持つ配列の配列に配列をプッシュすると期待どおりに機能しないようです

分類Dev

新しい配列での要素の作成とプッシュは、条件によって異なります

分類Dev

column1以外の行要素を削除してから、残りのセルを上にシフトします

分類Dev

配列内のすべての値を右にシフトして、新しい最初の値を挿入するにはどうすればよいですか?

分類Dev

中央のdivを左にシフトすると、右側に空白が残ります

分類Dev

DataFrameの重複行を新しい列として右側に追加する方法はありますか?

分類Dev

マップを使用して各配列要素の最後にテキストを追加するにはどうすればよいですか?

分類Dev

配列から新しい配列に特定の要素を削除し、同じ配列の長さで同じ位置に重複しない要素を残す方法

分類Dev

forループでテキストを右から左にどのように入力しますか?

分類Dev

配列内の特定の文字を無視またはスキップして、配列の残りの部分をCに格納するにはどうすればよいですか?

分類Dev

スプレッド演算子を使用して既存の配列で新しい値をシフト解除するにはどうすればよいですか?

分類Dev

特定のステップで配列のいくつかの要素をシャッフルします

分類Dev

どのように私はコンマは残りの部分を残して、リストを区切っからフレーズが「いいえ」とそれぞれカンマで始まる削除することができますか?

分類Dev

別の新しいステートメントで動的配列をリセットします。最初に削除する必要がありますか?

Related 関連記事

  1. 1

    Javaスクリプト。配列の最後に新しい値を追加し、残りをシフトします

  2. 2

    画像をナビゲーションバーの左側に配置し、リストの残りの部分を右側に配置することはできますか?

  3. 3

    配列に新しいバイトを追加し、残りのバイトをシフトします

  4. 4

    配列内のすべてのオカレンスを削除し、残りを左にシフトするにはどうすればよいですか?

  5. 5

    配列から最初の2つを選択し、残りの部分に+(プラス)を追加します

  6. 6

    配列要素を削除し、残りを左にシフトします

  7. 7

    java-配列の要素を任意の位置から削除し、残りの要素をシフトする

  8. 8

    スクリプトのPATHにディレクトリを追加して、呼び出し元のシェルとセッションの残りの部分に影響を与えるにはどうすればよいですか?

  9. 9

    配列要素を次の配列と比較し、要素が新しいときに最初からやり直します

  10. 10

    テキストファイルの行のリストを削除またはスキップして、残りの行を新しいテキストファイルに印刷するにはどうすればよいですか?

  11. 11

    インラインブロック要素をテキスト行の残りの部分にまたがらせるにはどうすればよいですか?

  12. 12

    配列のハッシュ内の配列に新しい要素を追加する

  13. 13

    既存のテーブルから新しいテーブルを作成し、スプレッドシートに新しい列を追加する方法

  14. 14

    配列内の要素を削除し、要素を左にシフトしてギャップを埋めます

  15. 15

    Javaで要素とその総数(適切に)からマップを作成するために、配列リストからアイテムをプルしてカウントするにはどうすればよいですか?

  16. 16

    Perl6:1つの要素を持つ配列の配列に配列をプッシュすると期待どおりに機能しないようです

  17. 17

    新しい配列での要素の作成とプッシュは、条件によって異なります

  18. 18

    column1以外の行要素を削除してから、残りのセルを上にシフトします

  19. 19

    配列内のすべての値を右にシフトして、新しい最初の値を挿入するにはどうすればよいですか?

  20. 20

    中央のdivを左にシフトすると、右側に空白が残ります

  21. 21

    DataFrameの重複行を新しい列として右側に追加する方法はありますか?

  22. 22

    マップを使用して各配列要素の最後にテキストを追加するにはどうすればよいですか?

  23. 23

    配列から新しい配列に特定の要素を削除し、同じ配列の長さで同じ位置に重複しない要素を残す方法

  24. 24

    forループでテキストを右から左にどのように入力しますか?

  25. 25

    配列内の特定の文字を無視またはスキップして、配列の残りの部分をCに格納するにはどうすればよいですか?

  26. 26

    スプレッド演算子を使用して既存の配列で新しい値をシフト解除するにはどうすればよいですか?

  27. 27

    特定のステップで配列のいくつかの要素をシャッフルします

  28. 28

    どのように私はコンマは残りの部分を残して、リストを区切っからフレーズが「いいえ」とそれぞれカンマで始まる削除することができますか?

  29. 29

    別の新しいステートメントで動的配列をリセットします。最初に削除する必要がありますか?

ホットタグ

アーカイブ