簡體   English   中英

如何在Java中存儲有關許多人的信息

[英]How to store information about many people in Java

我的問題是用Java存儲人員詳細信息。 我查看了Oracle網站主題“ 如何使用表” ,發現可以使用對象數組(二維)存儲詳細信息。

但是我的興趣是制作一個動態對象數組,這樣我可以存儲任意數量的數據,也可以接受用戶輸入來存儲這些詳細信息。 例如,在程序開始時,我可以指定一個對象數組來保存5條記錄,但是實際上我想要一個可以在需要添加更多記錄(動態)的情況下添加另一個可用位置的數組。

有沒有辦法在Java中做到這一點? 如果是這樣,您碰巧知道我可以開始的任何好地方,也許是鏈接。 使用對象數組存儲是最佳選擇嗎?

數組保存同質的數據,即通常數組中每個單元的所有類都是相同的。 您可能不希望在同一類型的字段中存儲一個人的名字和他的鞋子大小,所以...讓我們刪除數組的一個維度。 您應該聲明一個名為Person類的類,並在其中指定要為一個人存儲的所有屬性。 完成此操作后,您將只想存儲Person的一維數組(或其他東西)。

接下來,請注意數組的大小是固定的。 如果要擴展數組,則需要分配一個更大的新數組,將舊數組的內容復制到新數組中,然后繼續使用新數組代替舊數組。

這需要大量工作,而且容易出錯。 用蘋果的修飾詞來說,有一個類! 較早的合格類是Vector ,您可以在其中存儲對象的類,並且每次向其添加新對象時該類都會增長。 如今,用於此的類(效率更高)是ArrayList 同樣的事情:你做

ArrayList<Person> myList = new ArrayList<Person>();

然后你可以反復

newPerson = new Person("Bruce", "Wayne", 1972, "Gotham City");
myList.add(newPerson);

您可以通過以下方式訪問列表中的人員

int personNumber = 0;
Person retrievedPerson = myList.get(personNumber);

甚至

for (Person someone : myList) {
   System.out.println(someone);
}

編輯

好的,要存儲具有ID的人員並假設該人員ID是整數,則可以通過該ID對其進行訪問,則一些合適的代碼應為:

TreeMap<Integer, Person> myMap = new TreeMap<Integer, Person>();

newPerson = ...
myMap.put(newPerson.getId(), newPerson);

然后您可以使用

Person p = myMap.get(id);

在java.util.List,java.util.Map和System.arraycopy中查找一些可以幫助您的數據結構。

首先,您應該了解Object array passed to the JTable won't get storedObject array passed to the JTable won't get stored 它僅用於顯示您所做的記錄 要存儲您擁有的值,您必須使用文件或數據庫。

您可以通過動態設置對象數組大小的方式來知道真正需要顯示多少條記錄 我認為使用JDK 1.6不能動態更改Array的大小,但是即將發布的JDK 7可能會提供這樣的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM