Supprimer l'élément de tableau - déplacer tous les éléments de descendre d'un indice de

J'ai un code qui permet à un utilisateur pour supprimer un élément d'un tableau qu'ils choisissent cependant je veux la déplacer tous les éléments "en bas d'un" il n'y a pas de lacunes à gauche dans le tableau.

À l'heure actuelle si je supprime le premier élément (indice 0), il est supprimé, mais si j'ai ajouter les informations dans le tableau, il est entré à l'indice 1 et l'indice 0 est laissé null. Si quelque chose est supprimé à partir d'un index qui contient des renseignements dans les indices suivants comment puis-je déplacer toutes les informations pour descendre d'un indice?

Ma méthode delete:

  static void deleteStudent() {
    System.out.println("Wish student would you like to delete?");
    for(int i=0;i<9;i++) {
      System.out.println(i + ": " + studentNamesArray[i]);
    }
    int studentChoice = input.nextInt();
    for(int i = studentChoice+1; i<studentNamesArray.length; i++) {
      studentNamesArray[i-1] = studentNamesArray[i];
    }
  }

EDIT:

J'ai ajouté des quatre entrées de la matrice:
[one, two, three, four, null, null, null, null, null, null]

J'ai couru de programme et essayé de supprimer l'index [2], cela a été un succès pour la sortie suivante:
[one, two, four, null, null, null, null, null, null, null]

comme vous pouvez le voir les éléments où est déplacée vers le bas que l'on veut, le problème est alors, quand j'ai ajouter une valeur dans le tableau de nouveau supprimés de l'index est passé au-dessus et l'élément est entré dans le prochain indice, voir ci-dessous:
[one, two, four, null, newadd, null, null, null, null, null]

Comment puis-je avoir le programme en entrant une nouvelle valeur dans le tableau correct?

Méthode Add:

  static void addStudent() {
    if (nameArrayCount < 10) {
      System.out.println("Enter the student's name in the following format - surname, forename: ");
      studentName = input.next();
      studentNamesArray[nameArrayCount] = studentName;
      nameArrayCount = nameArrayCount + 1;
    }
    else if (nameArrayCount == 10) {
      System.out.println("******Array is full, please delete a student before adding another.*****");
    }
    if (markArrayCount < 10){
    System.out.println("Enter the first mark: ");
          markOne = input.nextInt();
          System.out.println("Enter the second mark: ");
          markTwo = input.nextInt();
          System.out.println("Enter the third mark: ");
          markThree = input.nextInt();
          studentMarksArray[markArrayCount][0] = markOne;
          studentMarksArray[markArrayCount][1] = markTwo;
          studentMarksArray[markArrayCount][2] = markThree;
          markArrayCount = markArrayCount + 1;
    }
  }
  • Vous pouvez utiliser ArrayList.
  • Malheureusement pour les fins du présent I ne peut pas utiliser de liste de tableaux ou que le tableau d'importation
  • stackoverflow.com/questions/20254914/...
  • Posté édité avec de nouvelles informations.
InformationsquelleAutor Colin747 | 2013-11-28