gpt4 book ai didi

java - 将文件读入具有不同数据类型的多维数组列表?

转载 作者:搜寻专家 更新时间:2023-11-01 09:50:41 24 4
gpt4 key购买 nike

我正在编写我的第一个 Android 应用程序,所以我是一个新手,对从文件获取数据到数组的最佳方式感到困惑。我正在尝试从资源原始 txt 文件中获取数据并将其存储在数组或 ArrayList 中,以便我可以执行 excel 样式的 vlookup。数据文件 (data_file.txt) 的大小为 28,2,第一列有一个 int,第二列有一个 float ,用空格分隔,如下所示:

  • 500 -1.3
  • 1000 -1.6
  • 10000 -1.7

我希望能够查找 1000 的值并得到 -1.6。首先,我应该使用多维对象数组还是 ArrayList,我使用哪个很重要?我需要将第二列的数据类型保留为 float,并希望尽可能将第一列的数据类型保留为 int。

我正在寻找有关代码的提示和/或我需要研究的方法。

干杯,

空气修复


4 月 3 日更新

我很确定 map 不是我想要的。我一直在研究下面的代码。它似乎会工作,除了 Scanner scan = new Scanner(new FileReader(file)); 我得到一个“无法解析构造函数 FileReader(int)文件变量。显然它把我的文件看作一个 int,而实际上它只是一个普通的 txt 文件,如示例中所示。仍在寻求帮助以完成。谢谢 :)

public void fuelIndex (){


Object file = (getResources().getIdentifier("fuel_index",
"raw", getPackageName()));
Scanner scan = new Scanner(new FileReader(file));


Object[][] fuelIndexData = new String[28][2];


int i = 0;
while(scan.hasNextLine()){
fuelIndexData[i] = scan.nextLine().split("\\s+");
i++;
}
//loops through the file and splits on any space

for (int row = 0; row < fuelIndexData.length; row++) {
for (int col = 0; col < fuelIndexData[0].length; col++) {
if(fuelIndexData[row][col] != null){
System.out.print(fuelIndexData[row][col] + " " );
}
}
if(fuelIndexData[row][0] != null){
System.out.print("\n");
}
}

}

最佳答案

如果整数是唯一的并用于标识浮点值,则应使用 HashMap , 如果您按列表中的位置进行索引并且允许整数值重复,则可以使用 ArrayList使用一些存储这两个值的对象 ContainerObject

HashMap

Map<Integer, Float> myMap = new HashMap<Integer, Float>();
myMap.put(500, -1.3f);
myMap.put(1000, -1.6f);
myMap.put(10000, -1.7f);

数组列表

List<ContainerObject> myList = new ArrayList<ContainerObject>();
myList.add(new ContainerObject(500, -1.3f));
myList.add(new ContainerObject(1000, -1.6f));
myList.add(new ContainerObject(1000, -1.7f));

关于java - 将文件读入具有不同数据类型的多维数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36378386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com