有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何删除索引左侧的所有元素?

所以我现在正在做一项任务,我现在被卡住了。我不知道如何获取索引左侧的所有元素并将其从Arraylist中删除

以下是确切的说明:

对于该程序,给定序列,删除所有零(如果有)及其左侧的所有数字。然后找到 剩余的最大数字,如果是偶数,则从中减去2;如果是奇数,则从中减去1。如果两个或两个 更多的数字成为并列的最大数字,使用最右边的数字作为最大数字。重复应用 规则与顺序一致。删除序列需要多少步

这就是我到目前为止所做的:

(如果代码有点乱,很抱歉)

import java.io.*;
import java.util.*;

public class Main {
  public static void main(String[] args) throws FileNotFoundException {
    File inputFile = new File("input.txt");
    Scanner scanFile = new Scanner(inputFile);

    String input;
    int testCase;
    String testCaseS = "";
    int zero;
    //testCase = scanFile.nextInt();
    //System.out.println(testCase);

    input = scanFile.next();
    //System.out.println(input);
    //input = input.replaceAll(",", "");


    String arr = input;
    String[] items = arr.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(",");

    int[] results = new int[items.length];

    for (int i = 0; i < items.length; i++) {
        try {
            results[i] = Integer.parseInt(items[i]);
        } catch (NumberFormatException nfe) {

        };
    }

    //for (int o = 0; o <= items.length; o++)
      //System.out.println(results[o]);
    boolean choice = false;
    int counter = 0;

    List<Integer> intList = new ArrayList<Integer>();
    for (int i : results)
    {
      intList.add(i);
    }

    if (!choice) {
      for (int u = 0; u < items.length; u++) {
        if (results[u] == 0)
            counter++;
            //intList.removeAll(Arrays.asList(0 ));
        }
      }
      int zeroindex = intList.indexOf(0);



      System.out.println(intList);
  }
}

共 (1) 个答案

  1. # 1 楼答案

    如果您只想删除特定索引中剩余的所有元素,那么

    list.subList(0, index).clear();

    就是这样