Java CSV 转 List10 Sept 2024 | 4 分钟阅读 表格数据可以存储在一种称为逗号分隔值(CSV)的流行格式中。但有时,我们需要将此CSV数据转换为List形式。为了实现这一点,Java提供了各种方法将CSV数据转换为List形式。在本节中,我们将讨论如何将CSV数据转换为List形式。 1. 使用BufferedReader和FileReader读取CSV文件最简单的方法之一是结合使用BufferedReader和FileReader。该方法使用CSVReader类和OpenCSV库将Java中的CSV文件转换为列表。所需的导入,CSVReader、FileReader、ArrayList和List,使得集成关键功能更加容易。首先,必须实例化CSVReader。 CSVReader.java 输出 679096 2017-01-02 16:43:49.237940 treatment new_page 0 691699 2017-01-09 23:42:35.963486 treatment new_page 0 807595 2017-01-22 10:43:09.285426 treatment new_page 0 924816 2017-01-20 10:59:03.481635 control old_page 0 846225 2017-01-16 15:24:46.705903 treatment new_page 0 740310 2017-01-10 17:22:19.762612 control old_page 0 ab_data.csv 679096,2017-01-02 16:43:49.237940,treatment,new_page,0 691699,2017-01-09 23:42:35.963486,treatment,new_page,0 807595,2017-01-22 10:43:09.285426,treatment,new_page,0 924816,2017-01-20 10:59:03.481635,control,old_page,0 846225,2017-01-16 15:24:46.705903,treatment,new_page,0 740310,2017-01-10 17:22:19.762612,control,old_page,0 解释 为了有效地读取文件内容,请使用BufferedReader。为了建立与CSV文件的连接,请使用FileReader。readCSV()方法将所有CSV行读取并使用逗号作为分隔符进行分割,然后将值存储在List<String[]>中。main()方法将引导您完成处理数据和使用readCSV()方法的过程。 2. 使用Scanner和LinkedList在此方法中,我们通过使用LinkedList和Scanner类,有效地将Java中的CSV数据转换为列表。要处理文件输入并存储数据结构,请导入Scanner、File、FileNotFoundException、LinkedList和List。开始此过程需要将一个File实例(初始化为CSV文件的路径)传递给Scanner实例。然后,转换后的CSV数据将被动态地存储在名为csvData的LinkedList中。 CSVToListConverter.java 输出 679096 2017-01-02 16:43:49.237940 treatment new_page 0 691699 2017-01-09 23:42:35.963486 treatment new_page 0 807595 2017-01-22 10:43:09.285426 treatment new_page 0 924816 2017-01-20 10:59:03.481635 control old_page 0 846225 2017-01-16 15:24:46.705903 treatment new_page 0 740310 2017-01-10 17:22:19.762612 control old_page 0 解释 convertUsingScanner()函数接受文件路径作为输入,使用Scanner读取CSV文件,并输出一个包含每行字符串数组的LinkedList。 main()方法将CSV文件路径发送到convertUsingScanner(),并打印结果列表。 3. 使用Stream API和Files该方法使用Java 8中引入的Files类和Stream API来读取和解析CSV文件。convertUsingStreamAPI()方法接受文件路径和分隔符作为参数。它通过使用Files.lines()方法读取CSV文件的每一行来创建一个行的Stream。随后,通过映射过程,根据指定的分隔符将每一行分割成字符串数组。最后,通过collect过程将结果编译成字符串数组的List。 CSVToListConverter.java 输出 679096 2017-01-02 16:43:49.237940 treatment new_page 0 691699 2017-01-09 23:42:35.963486 treatment new_page 0 807595 2017-01-22 10:43:09.285426 treatment new_page 0 924816 2017-01-20 10:59:03.481635 control old_page 0 846225 2017-01-16 15:24:46.705903 treatment new_page 0 740310 2017-01-10 17:22:19.762612 control old_page 0 解释 使用Files.lines()函数从给定的文件路径(Paths.get(filePath))打开一个行的Stream。map操作通过使用split(delimiter)方法将其拆分为字符串数组来转换每一行。之后,使用Collectors.toList()的collect函数,从生成的字符串数组Stream创建List。 |
高效计算矩阵主对角线和副对角线之和,需要利用索引属性来最大限度地减少迭代次数。与使用嵌套循环遍历整个矩阵不同,单循环可以直接访问对角线元素,从而提高性能并简化代码。这种方法...
阅读 6 分钟
给定一个数字 n。任务是在不使用除法 (/) 或取模 (%) 运算符的情况下,检查一个数字是否是 5 的倍数。示例 1:输入:30 输出:30 是 5 的倍数:true 说明:30 的最后一位数字是 0,因此它是...
5 分钟阅读
? Java 如此受欢迎的一个重要原因是其跨平台兼容性和内置安全性。Java 程序可以在安装了 Java 运行时环境 (JRE) 的任何机器上运行。程序可以在各种计算机上运行。Java 被许多银行、制造商、保险公司、公用事业公司和零售商使用……
阅读 6 分钟
涉及根据二叉树的根节点的水平距离,按列组织和打印二叉树的节点。使用 TreeMap 和层序遍历,节点按垂直顺序分组和显示,确保树的结构化视图。输入:一个具有……
14 分钟阅读
数组的数组可以是一个二维数组。二维数组由显示行和列集合的矩阵组成。我们可以使用它们的索引来访问二维数组中的单个单元格,就像访问一维数组一样,因为元素...
阅读 8 分钟
将偶数安排在偶数索引和奇数安排在奇数索引的过程需要将数组中的数字进行排列,以便偶数与偶数索引(0、2、4、...)对齐,奇数与奇数索引对齐...
阅读 19 分钟
在 Java 中,正则表达式经常用于使用字符序列定义搜索模式。量词,它决定了字符或字符组的出现次数,是指定搜索范围不可或缺的一部分。这些表达式有助于定义模式规则...
5 分钟阅读
Java 编程语言需要变量来操作和处理数据。Java 会根据数据格式和数据类型创建几个变量。变量声明意味着在程序中创建变量以操作不同的信息。Java 变量声明会创建一个具有所需属性的新变量....
5 分钟阅读
在 Java 中,我们使用 Calendar 抽象类来处理日期和时间。它有几个有用的接口,允许我们在特定时间点和一组日历字段(如 DAY、MONTH、YEAR、HOUR 等)之间转换日期。 ...
阅读 3 分钟
Java 中的最小成本路径问题是面试中最突出的问题之一。在此问题中,提供了一个矩阵(costMatrix[][]),它表示 costMatrix[][] 中每个单元格的成本。任务是转...
11 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India