我使用 arraylist 来存储数据,我尝试在没有任何 if 语句的情况下从文件中读取并填充 arraylis 并打印它,它工作正常,但是当我使用迭代和 if 语句和逻辑条件时,它会给出异常超出数组列表的范围,
ArrayList<String> accon = new ArrayList<String>();
ArrayList<Double> balance = new ArrayList<Double>();
try {
BufferedReader Buffer = new BufferedReader(new FileReader(new File(
"D://transactions.txt")));
String line = null;
while ((line = Buffer.readLine()) != null) {
// String arr[] = line.split(" ");
String accn = line.substring(0, 17);
String Case = line.substring(18, 19);
double a = Double.parseDouble(line.substring(20));
// System.out.print(balance.size());
// for (int i = 0; i < accon.size(); i++) {
int i = 0;
System.out.print(accon.get(i).equals(accn));
while (accon.size() >= i) {
if (accon.get(i).equals(accn)) {
if (Case.equals("D")) {
balance.set(i, balance.get(i) - a);
} else {
balance.set(i, balance.get(i) + a);
}
} else {
accon.add(accn);
balance.add(a);
// break;
}
i++;
}
// }
}
System.out.print("-------------------");
for (int i = 0; i < accon.size(); i++) {
System.out.println(accon.get(i));
System.out.println(balance.get(i));
// System.out.println(accon.size());
}
} catch (Exception e) {
System.out.print("" + e);
}
java.lang.IndexOutOfBoundsException:索引:0,大小:0
最佳答案
列表 accon
中没有任何元素,但您在其中使用 accon.get(0)
System.out.print(accon.get(i).equals(accn)); //here is the error
导致错误提示您正在读取 0
索引,但列表大小为 0
关于java - 数组列表超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32893425/