我一直在尝试使用.values()将贷款列出到控制台,它在列出项目或借款人时使用地图,但对于我的贷款,任何人都知道为什么?
public void listLoans(){
System.out.println("Loans:");
for (LoanTransaction t: loans.values()) {
System.out.println(t);
}
System.out.println();
}
访问者
public Map<Integer, Borrower> getBorrowers() { return borrowers; }
public Map<Integer, Item> getItems() { return items; }
public List<LoanTransaction> getLoans() { return loans; }
按预期工作的列表项的示例
public void listItems() {
System.out.println("Items:");
for (Item i: items.values()) {
System.out.println(i);
}
System.out.println();
}
答案 0 :(得分:1)
values()
没有List
方法。 Maps
需要将其与keySet()
(以及返回键值对的entrySet()
进行区分。这足以使用
for(LoanTransaction t: loans)
一般来说,任何实现Iterable
的东西都可以用作for-each循环的右侧。
答案 1 :(得分:1)
values()
仅在map
上提供,如您所说。
如果是List
,那就是它自己的价值。所以只需要不需要值
for (LoanTransaction t: loans.values())
应该是
for (LoanTransaction t: loans)
答案 2 :(得分:0)
values()
仅适用于地图,因为地图是由对组成的。 loans
的类型为List
,要获取列表中的元素,您只需要
for (LoanTransaction t: loans) {
System.out.println(t);
}