java– 转置数组

java– 转置数组,第1张

概述我使用以下代码读取CSV文件:Stringnext[]={};List<String[]>dataArray=newArrayList<String[]>();try{CSVReaderreader=newCSVReader(newInputStreamReader(getAssets().open("inputFile.csv")));for(;;){next

我使用以下代码读取CSV文件:

  String next[] = {};  List<String[]> dataArray = new ArrayList<String[]>();  try {      CSVReader reader = new CSVReader(new inputStreamReader(getAssets().open("inputfile.csv")));      for(;;) {          next = reader.readNext();          if(next != null) {              dataArray.add(next);          } else {              break;          }      }  } catch (IOException e) {      e.printstacktrace();  }

这会将CSV文件转换为数组’dataArray’.我的应用程序是一个字典类型的应用程序 – 输入数据的第一列是单词列表,第二列是这些单词的定义.以下是加载的数组的示例:

Term 1, DeFinition 1Term 2, DeFinition 2Term 3, DeFinition 3

为了访问数组中的一个字符串,我使用以下代码:

dataArray.get(rowNumber)[columnNumber]

但是,我需要能够生成所有术语的列表,以便可以为词典应用程序显示它们.据我所知,访问列是一个比访问行更长的过程(我来自MATLAB背景,这将是简单的).

似乎为了能够随时访问输入数据的任何行,我最好转置数据并以这种方式读取数据;即:

Term 1, Term 2, Term3DeFinition 1, DeFinition 2, DeFinition 3

当然,我可以提供一个首先转置的CSV文件 – 但Excel或OO Calc不允许超过256行,而我的词典包含大约2000个术语.

欢迎以下任何解决方案:

>一种在读入数组后转置数组的方法
>对上面发布的代码进行更改,以便以“转置”方式读取数据
>一种简单的方法来读取整个数组的整个列

解决方法:

使用地图数据结构(例如HashMap)可能会更好:

String next[] = {};HashMap<String, String> dataMap = new HashMap<String, String>();try {    CSVReader reader = new CSVReader(new inputStreamReader(getAssets().open("inputfile.csv")));    for(;;) {        next = reader.readNext();        if(next != null) {            dataMap.put(next[0], next[1]);        } else {            break;        }    }} catch (IOException e) {    e.printstacktrace();}

然后你可以访问第一列

dataMap.keySet();

和第二列

dataMap.values();

请注意这里的一个假设:输入数据的第一列是所有唯一值(即“Term”列中没有重复的值).

为了能够将键(术语)作为数组访问,您可以按如下方式执行:

String[] terms = new String[dataMap.keySet().size()];terms = dataMap.keySet().toArray(terms);
总结

以上是内存溢出为你收集整理的java – 转置数组全部内容,希望文章能够帮你解决java – 转置数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1106079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存