Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以表格格式打印对象的ArrayList_Java_Object_Arraylist - Fatal编程技术网

Java 以表格格式打印对象的ArrayList

Java 以表格格式打印对象的ArrayList,java,object,arraylist,Java,Object,Arraylist,基本上,我编写了这段代码,其中用户为类的成员输入某些值。我还制作了该类的ArrayList。我想以这样一种方式编码它,用户可以要求程序打印他/她输入的所有数据,但我似乎无法让它工作 工作: 工作测试人员: public class JobTester { static ArrayList<Jobs> jobs = new ArrayList<>(); public static void main(String [] args){ S

基本上,我编写了这段代码,其中用户为类的成员输入某些值。我还制作了该类的
ArrayList
。我想以这样一种方式编码它,用户可以要求程序打印他/她输入的所有数据,但我似乎无法让它工作

工作:

工作测试人员:

public class JobTester {

    static ArrayList<Jobs> jobs = new ArrayList<>();

    public static void main(String [] args){

        Scanner keyboard = new Scanner(System.in);
        float CostPerHour, HoursWorked, CostOfMaterials;
        String Date, JobNumber;
        String option = "y";

        while((option.equals("y"))||(option.equals("Y"))){
            System.out.print("Please Enter the Date : ");
            Date = keyboard.nextLine();
            System.out.print("Please Enter the Job Number : ");
            JobNumber = keyboard.nextLine();
            System.out.print("Please Enter the Cost Per Hour : ");
            CostPerHour = keyboard.nextFloat();
            System.out.print("Please Enter the Number of Hours : ");
            HoursWorked = keyboard.nextFloat();
            System.out.print("Please Enter the Cost of Materials : ");
            CostOfMaterials = keyboard.nextFloat();
            keyboard.nextLine(); 
            jobs.add(new Jobs(JobNumber, Date, CostPerHour, CostOfMaterials, HoursWorked));

            System.out.print("Press Y to create a new Job : ");
            option = keyboard.nextLine();        
        }

        System.out.print("Press Y to print the list of jobs you created : ");
        option = keyboard.nextLine();

        if((option.equals("y"))||(option.equals("Y"))){
            PrintJobs();
        }

        System.out.print("Press any key to exit.");
        keyboard.nextLine();

    }
    public static void PrintJobs(){
        System.out.println("Date \tJobNumber \tCostPerHour x HoursWorked + CostOfMaterials = CostOfJob");
        for(int i = 0; i>jobs.size(); i++){
            System.out.println(jobs.get(i).getDate()+"\t"+jobs.get(i).getJobNumber()+"\t"+jobs.get(i).getCostPerHour()+" x "+jobs.get(i).getHoursWorked()+" + "+jobs.get(i).getCostOfMaterials()+" = "+jobs.get(i).getCostOfJob());
        }
    }
}
公共类职务测试仪{
静态ArrayList作业=新建ArrayList();
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
每小时浮动成本,工时,材料成本;
字符串日期、工号;
字符串选项=“y”;
而((option.equals(“y”))|(option.equals(“y”)){
系统输出打印(“请输入日期:”);
日期=键盘.nextLine();
系统输出打印(“请输入作业编号:”);
JobNumber=keyboard.nextLine();
System.out.print(“请输入每小时的成本:”);
CostPerHour=keyboard.nextFloat();
System.out.print(“请输入小时数:”);
HoursWorked=keyboard.nextFloat();
系统输出打印(“请输入物料成本:”);
CostOfMaterials=keyboard.nextFloat();
keyboard.nextLine();
添加(新作业(作业编号、日期、每小时成本、材料成本、工时));
System.out.print(“按Y键创建新作业:”);
option=keyboard.nextLine();
}
System.out.print(“按Y键打印您创建的作业列表:”);
option=keyboard.nextLine();
if((option.equals(“y”))|(option.equals(“y”)){
PrintJobs();
}
系统输出打印(“按任意键退出”);
keyboard.nextLine();
}
公共静态void PrintJobs(){
System.out.println(“日期\tJobNumber\tCostPerh x工时+材料成本=作业成本”);
对于(int i=0;i>jobs.size();i++){
System.out.println(jobs.get(i).getDate()+“\t”+jobs.get(i).getJobNumber()+“\t”+jobs.get(i).getCostPerHour()+“x”+jobs.get(i).getHoursWorked()+“+”+jobs.get(i).getCostOfMaterials()+“=”+jobs.get(i).getCostOfJobs());
}
}
}

这更干净。您甚至可以考虑使用<代码> Soal.Out.Prtff .P/>
public static void PrintJobs()
{
     System.out.println("Date \tJobNumber \tCostPerHour x HoursWorked + 
     CostOfMaterials = CostOfJob");
     for(Job j: jobs)
     {                     
         System.out.println(j.getDate()+ "\t"+ j.getJobNumber()+  ...
     }
}

“我似乎无法让它工作。”你能解释一下到底是什么不起作用吗?在你的PrintJobs方法中,你有这个
i>jobs.size()
应该是
i。因此,你可能想使用集合
进行
循环;这使您的代码不那么容易出错。实际上jpw是对的,唯一的错误是“>”符号,我修复了它,谢谢guys@ShazuHassen您可能需要研究如何覆盖对象的
toString()
方法。
public static void PrintJobs()
{
     System.out.println("Date \tJobNumber \tCostPerHour x HoursWorked + 
     CostOfMaterials = CostOfJob");
     for(Job j: jobs)
     {                     
         System.out.println(j.getDate()+ "\t"+ j.getJobNumber()+  ...
     }
}