首页 > 解决方案 > 尝试在 Java 中获取 ArrayList 的输出

问题描述

我正在尝试获取一个将 csv 文件放入 ArrayList 并显示 ArrayList 内容的代码。我相信我的代码是正确的,可以将数据放入 ArrayList,但我无法打印。欢迎任何建议。我对 Java 和一般编码非常陌生。

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

class Employee{
    public String FirstName;
    public String LastName;
    public String Company;
    public String Address;
    public String City;
    public String County;
    public String State;
    public String Zip;
    public String Phone;
    public String Fax;
    public String Email;
    public String Web;    
}       

public class ITCO321IPWeek4 {
    public static void main(String[] args) throws FileNotFoundException, IOException {

        String line = "";
        ArrayList <Employee> ALEmployee = new ArrayList();

        FileReader fr = new FileReader("C:\\Users\\User\\Downloads\\ITCO321_U4IP_sample_data.csv");
        try (BufferedReader br = new BufferedReader(fr)) {
            while ((line = br.readLine())!=null){ 
                Employee emp = new Employee();
                String[] empFields = line.split(",");
                emp.FirstName = empFields[0];
                emp.LastName = empFields[1];
                emp.Company = empFields[2];
                emp.Address = empFields[3];
                emp.City = empFields[4];
                emp.County = empFields[5];
                emp.State = empFields[6];
                emp.Zip = empFields[7];
                emp.Phone = empFields[8];
                emp.Fax = empFields[9];
                emp.Email = empFields[10];
                emp.Web = empFields[11];
                ALEmployee.add(emp);
            }
        }
    }
} 

标签: javaarraylist

解决方案


要打印一个ArrayList你可以

  • 采用System.out.println(ALEmployee);

  • 或者更精确并逐个打印每个元素

    for(Employee e : ALEmployee){
        System.out.println(e);
    }
    

在这两种情况下,您都需要toString()在类中实现该方法Employee

public String toString(){
    return FirstName+" "+LastName+" "+Company; // do whatever you want here
}

我还建议您遵循 Java 约定和编码约定:

  • 用于lowerCamelCase命名属性/变量
  • 将属性设置为private并使用setters或构造函数来实例化Employee带有其属性的an

推荐阅读