You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将文本文件中的数值存入Java ArrayList矩阵?

问题分析与解决

你的核心问题是构建矩阵时,每行都重复读取了相同的元素。原代码内层循环固定从索引1到dimension取值,导致所有行都是第一行的数据。

修正思路

文本文件的结构是:第一行是矩阵维度N,接下来N行每行有N个数值。读取到numbers列表后,数据顺序为:[4, 0,24,12,52, 24,0,16,23, 12,16,0,18, 52,23,18,0]。要构建N×N矩阵,第j行(从0开始)的元素应该是numbers中从1 + j*N开始的连续N个元素。

修正后的代码

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Siti {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader("C://Users//dbruschi//Java-projects//NodiTelefonici//nodi.txt"));

        String line;
        ArrayList<Integer> numbers = new ArrayList<>();

        while ((line = reader.readLine()) != null) {
            StringTokenizer token = new StringTokenizer(line);
            while (token.hasMoreTokens()) {
                int num = Integer.parseInt(token.nextToken());
                numbers.add(num);
            }
        }
        reader.close(); // 释放流资源
        System.out.println(numbers);

        int dimension = numbers.get(0);
        System.out.println("The dimension is: " + dimension);

        ArrayList<ArrayList<Integer>> matrix = new ArrayList<>();

        for(int j = 0; j < dimension; j++) {
            ArrayList<Integer> matrixRow = new ArrayList<>();
            // 计算当前行起始索引:跳过第一个维度元素,加上当前行的偏移量
            int startIndex = 1 + j * dimension;
            for (int i = 0; i < dimension; i++) {
                int elem = numbers.get(startIndex + i);
                matrixRow.add(elem);
            }
            matrix.add(matrixRow);
        }
        System.out.println(matrix);
    }
}

关键修改点

  • 计算每行起始索引startIndex = 1 + j * dimension:跳过列表第一个元素(矩阵维度),根据行号j计算偏移量,确保每行取到对应位置的元素。
  • 内层循环从0到dimension-1,通过startIndex + i定位当前行的每个元素。
  • 添加reader.close()确保流资源被正确释放。

运行修正后的代码,输出会是:

[[0, 24, 12, 52], [24, 0, 16, 23], [12, 16, 0, 18], [52, 23, 18, 0]]

内容的提问来源于stack exchange,提问作者Bruda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:25:35