java - 删除元素后向上移动连续索引

标签 java arrays

我可以运行它以从数组中删除一个元素,但是我怎样才能将电影向上移动,这样它就不会显示为 -1、0、1 等...这是屏幕截图输出:https://imgur.com/a/Ab0PP3p

 public static String[] removeMovies (String[] newList) { 
    String[] removeMovies = new String [newList.length-1]; 
    
    for (int i=0; i < newList.length-1; i++) { 
        removeMovies[i]= newList [i+1]; 
    }

    Scanner scan= new Scanner(System.in); 
    System.out.println("Which movie would you like to delete?");
    removeMovies[removeMovies.length-1]=scan.nextLine(); 
    return removeMovies;
    }
public static void dltMovieList(String[] movies) {

    for (int i=0; i<movies.length-1;i++) { 
    System.out.println((i-1)+")" +movies[i]);
}

最佳答案

这是我对问题的实现:

import java.util.Scanner;
class Main {
  public static void main(String[] args) {
    String[] movies = {"The Avengers","Rush Hour","Fast & Furious 7","The Ugly Truth","Spiderman"};
    dltMovieList(removeMovies(movies));
  }
  public static String[] removeMovies (String[] newList) { 
    String[] removeMovies = new String [newList.length-1]; 
    Scanner scan= new Scanner(System.in); 
    System.out.println("Which movie would you like to delete?");
    String movieDel = scan.nextLine();
    int iterator = 0;
    for(int x = 0; x < newList.length; x++){
      if(!newList[x].equals(movieDel)){
        removeMovies[x] = newList[iterator];
      }
      else{
        iterator++;
        removeMovies[x] = newList[iterator];
      }
      iterator++;
    }
    return removeMovies;
  }
  public static void dltMovieList(String[] movies) {

    for (int i=0; i<movies.length;i++) { 
      System.out.println((i+1)+") " +movies[i]);
    }
  }
}

运行这段代码会输出:

Which movie would you like to delete?
Spiderman
1) The Avengers
2) Rush Hour
3) Fast & Furious 7
4) The Ugly Truth

这段代码的工作原理是,与您的类似,我们在删除电影后创建一个新数组来存储电影列表。

然后,我们根据用户输入找出他们想要删除的电影。

当遍历我们的数组以复制值时,如果我们遇到该值,我们将跳过它而不复制它。

最后,当我们打印出值时,我们希望从 i = 0 开始,一直上升到 i = movies.length - 1 这样我们就可以得到所有的值的值(value)观。此外,当打印出索引时,我们应该加 1,以便我们从 1 开始。

希望对您有所帮助!如果您有任何问题,请告诉我!

关于java - 删除元素后向上移动连续索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70330019/

相关文章:

javascript - 在原型(prototype)数组上实现快速排序递归函数

Java SWT 图像背景颜色

java - 用于查找未使用代码的轻量级 JVM Instrumentation

java - 是否可以将不同长度的 double 值转换为点前 2 位数字

PHPEXCEL : How to merge excel row based on array value

php - mysqli fetch_assoc 使用 foreach 删除第一行

java - 一一执行函数

java - 为什么等于运算符适用于 128 之前的整数值?

c++ - `delete []`时使用 `new [0]`

javascript - 无法从数组中过滤对象