【发布时间】:2015-08-31 14:20:53
【问题描述】:
有一些有趣的逻辑,我试图以最有效和可读的方式进行编码。我将在下面列出场景(带有模拟/虚拟上下文)
我有一个银行及其柜员评论的数据存储(1-5 个整数字段)。柜员可以选择拥有客户选择赢家 (CCW) 字段。我的要求如下,为给定的银行选择最多 5 个柜员显示给用户:
- 如果柜员是 CCW,请选择它。如果多个柜员有 CCW,请使用柜员评论来打破平局
- 当没有 CCW 时,选择柜员评分最高的 4 级柜员。
我必须为 5 家银行执行上述操作。我得到的逻辑是有一个 for 循环遍历 5 个银行,并在每个循环中,遍历每个银行的所有柜员 5 次(选择 5 个柜员)。在我看来,这确实效率低下且不清楚。这就是我的意思:
foreach (Bank b : banks) {
List<Tellers> tellers = b.getTellers();
foreach (Teller t : tellers) {
List<Reviews> reviews = t.getReviews();
...// get 4 reviews following the above logic.
}
}
谁能帮我写出更清晰、更有效的方法?
谢谢!
【问题讨论】:
-
有什么原因不能由数据库(SQL或其他)完成吗?
-
柜员是否包含所有银行的所有柜员?或者特别是每个透视银行的出纳员?
-
对 java 8 是的,并且要求不要在 SQL 中这样做(不取决于我)
-
@DrewB b.getTellers() 调用获取特定银行 b 的所有柜员。
-
你说 " for a given bank" 但遍历每个银行。它是哪一个?银行是不是方法参数