嗨即時製作商店的學生的詳細信息,我想一些意見,哪些收藏使用。該商店將具有諸如姓名,號碼,地址和電子郵件等詳細信息。商店將被打印到一個文本文件,我可以加載,保存,編輯和刪除文本文件中的細節。我從來沒有這樣做過,如果在使用集合時對文件I/O有任何限制,我也不會。所以我會很感激評論。提前致謝。最好的收藏品來存儲學生的細節?
回答
如果我是你的地方,
那我就已經創建了一個bean類說Student
和收集ArrayList<Student> student = new ArrayList<Student>();
和ArrayList
是系列化所以沒有磁盤寫入和發行所有IO
一個class
操作。
對於排序ArrayList
通過對象屬性look
除非需要某些特殊的「快速位置」功能,例如按姓氏或學生ID進行搜索,則列表將是適當的集合。
List<Student> students = new ArrayList<Student>();
如果你確實需要一些屬性來組織你的學生,比如說,通過學生證,可以考慮使用LinkedHashMap
:
Map<String,Student> studentById = new LinkedHashMap<String,Student>();
LinkedHashMap
給你迭代的可預知的順序。您可以使用常規的HashMap<K,V>
,但迭代順序將是任意的。最後,你可以使用一個TreeMap<K,V>
,它將基於密鑰排序的迭代次序。
我認爲這將導致地圖的情況下一個嚴重的問題,如果他不正確重載equals /哈希碼。 – Woot4Moo 2012-08-02 13:30:50
@ Woot4Moo這是正確的,如果OP使用他自己的類來處理key,他將需要處理equals/hashCode。這就是爲什麼我建議使用'字符串' - 他們做出優秀的散列鍵。 – dasblinkenlight 2012-08-02 13:34:23
嗯,他們做出很好的密鑰,因爲哈希值得保證很好。 http://www.infoq.com/presentations/effective-api-design/查看Josh Bloch對Strings作爲Keys的看法。這是建立API的相當豐富 – Woot4Moo 2012-08-02 13:39:45
那麼如果它必須是可序列化的,也就是說你可以將它寫入磁盤,那麼可以使用List
。現在,在任何人尖叫之前,您無法序列化一個List
,這是正確的,但您也無法實例化List
。由於我們知道List
的所有已知子類都是可序列化的,因此您可以安全地投射。在如何存儲數據List<Student>
應該就好了。
編輯
似乎在這裏有些混亂。在面向對象的語言中,我們知道is-a
關係適用於層次結構中指定的對象。因此,在Java API中,我們有一個名爲List
的接口,該接口具有實現它的類ArrayList
。這使ArrayList
處於List
的層次結構中。由於ArrayList
實現了Serializable
,我們知道您不能實例化標有關鍵字接口(Java)的對象。我們可以使用Serialize
來鑄造List
的任何已知實現。這將起作用的原因是保證傳遞的實現(即具體對象)是可序列化的。
在最簡單的情況下,java.util.List
將完全符合您的要求。但是,如果您希望能夠快速查找集合中的條目(以支持您的更新要求),則還應該查看java.util.Map
。地圖可讓您快速導航到特定記錄,而不必遍歷整個集合,而使用列表時,您必須依次查看集合中的每個學生,直到找到您感興趣的一個。
除非它們被排序。 – Daniel 2012-08-02 13:29:37
- 1. java - 更好的方式來存儲學生評估類日記
- 2. 最好的方法來存儲客戶產品
- 3. 最好的DBMS來存儲HTML
- 4. SQL語句返回學生的品位最好
- 5. 什麼是最好的場地來存儲生日?
- 6. 最佳數據結構來存儲標記和學生
- 7. 從收藏品收藏
- 8. Django最好的方式來存儲數百萬產品的價格歷史?
- 9. 更好的方式來存儲可更新的科學數據?
- 10. 最好的存儲方法
- 11. 從複選框的收藏中存儲用戶偏好
- 12. 最好的方法來學習.NET
- 13. 最好的資源來學習C/C++
- 14. 清晰的細節存儲在形式
- 15. 收集藏品
- 16. Mysql最好的學生在學校的每一堂課
- 17. 收集收藏品的最佳表現方法
- 18. 從URL存儲產品詳細信息
- 19. 最好的方式來存儲訪問統計與緩存
- 20. 最好的方法來緩存存儲在C字典#
- 21. 在MySQL中存儲用戶「收藏夾」的最佳方式
- 22. 最好的格式來接收數據
- 23. 最好的方式來儲存大量的用戶數據的
- 24. 存儲學生課程的類?
- 25. 最好的iphone遊戲與來源爲初學者學習
- 26. 用define()存儲數據庫連接細節是好還是不好?
- 27. 最好的方法來存儲解析的HTML輸出在XML
- 28. 最好的方式來存儲少量的數據
- 29. 最好的方法來存儲三種類型的位?
- 30. 最好的方法來存儲60維度的向量 - C++
只看到你的帖子現在的男人。數組列表可以按名稱排序。它不是在簡短的問,但即時通訊認爲這可能是一個獎金,有一個排序的文本文件。 – Pendo826 2012-08-02 13:46:05
@ Pendo826 here http://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property – 2012-08-02 13:49:39
很好的例子。 :) – Pendo826 2012-08-02 13:53:28