我的应用程序中有一个客户Customer,它有一个客户列表。包含另一个列表的列表
public class CustomerList
{
private List<Customer>
}
客户类别反过来有一个列表,他们列出了他们在一周某一天在商店购物的所有物品。
public class Customer
{
private List<String> itemsOnMonday;
private List<String> itemsOnTuesday;
private List<String> itemsOnWednesday;
private List<String> itemsOnThursday;
private List<String> itemsOnFriday;
}
现在,我想列出顾客在给定周内购物的所有商品。做这个的最好方式是什么?我的同事建议我创建另一个列表,并将项目添加到此列表中。我不相信这是一个好方法。我有超过1000位顾客,每位顾客每周购物超过500件。他认为这样的事情 -
for(Customer customer:customerList)
{
List<String> items = new ArrayList<String>();
items.addAll(itemsOnMonday);
//So on until Friday.
}
这是疯了,因为我最终会产生内部的1000多对象的循环。有没有更好的方法来做到这一点?我们已经头脑风暴了一段时间了,无法想出实现这一目标的有效实施。任何帮助都感激不尽。
这听起来并不疯狂。您不会创建_any_新对象(除了您的新列表)。您只是创建指向相同对象的新列表。有5个不同的列表(每天一个)代替一个带有5个桶的地图,这真是太疯狂了。你可以阅读关于地图[这里](http://docs.oracle.com/javase/7/docs/api/java/util/Map.html)。 – jahroy
我会开始为'ItemPurchased'创建一个单独的类,并且每天只使用一个列表而不是5个不同的列表。大概在'ItemPurchased'本身中存储星期几信息。 –
@jahroy - 我们还没有创建7个不同的列表,因为我们想要。我们从一个JSON字符串中获取数据,其中包含项目数组:( – rickygrimes