java - 数组列表超出范围

标签 java arrays

我使用 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/

相关文章:

python - 创建特定大小的 Numpy 数组,然后以步进速率填充值

javascript - 如何使用 JavaScript 用一个 if 检查数组中的多个元素?

java - int[]数组和BitSet的交集可以更快吗?

objective-c - Objective-C 中的静态数组

java - G1 GC 巨大对象分配

java通过命令获取批处理文件命令的输出

java - 从 JSON 获取数据

c - 错误 : expression must be a modifiable l value

java - 使用 Proguard 完全删除未使用的字段引用(例如日志记录)

java - 无法使用 Java API 连接到在本地虚拟机上运行的 ElasticSearch Docker 集群