从数组列表打印

时间:2013-11-30 21:45:23

标签: java arrays printing

我需要能够打印出从阵列列表中获得贷款的所有学生。

意味着所有学生的金额都高于0。

我已经可以打印所有学生和他们拥有多少...但我不知道如何让它只打印学生贷款。

这是当前代码

删除个人原因

3 个答案:

答案 0 :(得分:1)

我认为StudentLoan有一个字段public int loanAmount,然后你可以这样做:

for(StudentLoan loan : loans) {
        int index=0;
        if (loans.loanAmount > 0) {
            System.out.print(index + " : ");
            loan.printDetails();
            index++;
        }
    }

这样只会打印loanAmount > 0的贷款。

如果字段loanAmountprivate,您只需为字段实现getter方法并将条件更改为:

if (loan.getloanAmount() > 0) {

修改

从评论中回答你的问题:

要删除loamAmount为0的所有贷款,我们只需为每个循环添加另一个if

for(StudentLoan loan : loans) {
        int index=0;

        // print loans with amount > 0

        if (loan.loanAmount > 0) {
            System.out.print(index + " : ");
            loan.printDetails();
            index++;
        }

        // delete loans with amount = 0

        if (loan.loanAmount == 0) {
           loans.remove(loan) // UNSAFE! see edit below
        }
    }

修改

在迭代集合时使用.remove是不安全的。它应该像iterator一样完成:

import java.util.Iterator // add to imports

Iterator<StudentLoan> i = loans.iterator();

while (i.hasNext()) {
    StudentLoan loan = i.next();
    if (loan.getAmount() == 0) {
        i.remove();
    }
}

答案 1 :(得分:1)

我猜你在StudentLoan对象中有变量Amount的getter,即getAmount()。如果没有,你应该创建一个。

打印方法将更改为:

public void printLoanDitails()
{
    System.out.println("Loan Summery: ");
    int index=0;  //This should be outside the loop, or it will be set to 0 each time
    for(StudentLoan loans : loan) {

        if(loans.getAmount() > 0)
        {
            System.out.print(index + " : ");
            loans.printDetails();
            index++;
        }
    }
    System.out.println();
}

您也应该将此逻辑添加到PayOff方法中。

答案 2 :(得分:0)

如果没有看到你的studnetLoan类

,就不能确定你在使用print语句做什么

你有:

for(StudentLoan loans : loan) {
        int index=0;
        System.out.print(index + " : ");
        loans.printDetails();
        index++;
    }

我会做更多这样的事情:

for(StudentLoan loan : loanList) {         
        if(loan.getAmount() > 0) 
           loan.printDetails();

    }

请注意,我已将贷款名单命名为“loanList”,或者可能是“贷款”,但将其称为“贷款”是没有意义的