因此,我目前正在从事一项作业,并且目前陷入困境。我无法弄清楚如何获取索引左侧的所有元素并将其从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);
}
}
答案 0 :(得分:1)
如果您只想删除特定索引中剩余的所有元素,则
list.subList(0, index).clear();
这就是方法。