所以我目前正在做一项作业,但目前陷入困境。我不知道如何获取索引左侧的所有元素并将它们从 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);
}
}
最佳答案
如果您只想删除特定索引中剩余的所有元素,则
list.subList(0,index).clear();
就是这样。
关于java - 如何删除索引左侧的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55036478/