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()+ ...
}
}