我的應用程序中有一個客戶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