Re: [問題] 用物件名稱抓取物件

看板java作者 (小陳)時間10年前 (2014/09/03 13:07), 10年前編輯推噓2(202)
留言4則, 4人參與, 最新討論串2/2 (看更多)
你需要的是TreeMap的容器物件。 TreeMap<String,Obj> myContainer=new TreeMap<>(); for(int i=0;i<=10;i++){ Obj o=in.readobject(); myContainer.put("o"+i,o); } 取出名稱為o2的物件就是 Obj o=myContainer.get("o2"); put(key,value); key放你的名稱 value就是整個物件 通常名稱都是要有意義的,例如學號、姓名 用隨機數也要知道這個名稱才能取 Java的object本身就是一個記憶體位置 在一些Design Pattern的書,還有更多的作法, 不過建議你先熟悉Colletion的操作。 ※ 引述《ray01080 (阿勒)》之銘言: : 大家好 java新手發問 如有蠢問題請多包涵>"< : 我現在在寫一個servlet的程式,然後遇到一個問題 : 今天有一個接收器Object obj=in.readobject負責把物件讀進來 : 進來以後我把它offer到一個priority queue裡面 : 然後它就重覆接收->送到queue這個動作 : 但是假設我送了10個進queue以後 : 我想要更改我送進去queue裡面其中一個物件的其中一樣數值(假設是int) : 我不知道要怎麼抓到我之前送進去的那個物件(obj會被後面接收的洗掉) : 自己是有想一個方法,但是不確定可行性或有沒有這種函式之類的 : 因為java有幫obj設定它的名稱 : 假設這程式叫Receiver.java : 然後接收器每接一個obj就會幫它取名叫Receiver$obj@69e4fede (@後面為隨機數字/英文 : ) : 那我有辦法紀錄這個字串以後用這個字串來找到我的這個物件嗎 : 或是有更方便的方法 不好意思麻煩各位大大賜教了= =" -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.83.99 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1409720863.A.94E.html ※ 編輯: chen1025 (60.250.83.99), 09/03/2014 13:08:15 ※ 編輯: chen1025 (60.250.83.99), 09/03/2014 13:08:36

09/03 16:08, , 1F
是的 我也找到了 感謝:) 那我用Hashtable可以嗎?
09/03 16:08, 1F

09/03 18:40, , 2F
可以阿 看你要不要排序功能
09/03 18:40, 2F
原Po補充: HashTable或是HashMap的處理時間是TreeMap快 一個是O(1)一個是O(logN) 如果在數百萬筆的資料以上,大概會快三倍的時間吧。 但是TreeMap本身有排序的功能, 你可以依序列出目前所有的Key,像是學號姓名等, 上面這一點在偵錯和程式撰寫時,是重要的。 而且比較不會浪費記憶體,Hash雜湊是用空間換取時間。 所以我通常都是用TreeMap為主,要特別注意時間效率的, 而且計算量極大,會採用Hash的儲存結構。 以上經驗給您參考。 ※ 編輯: chen1025 (60.250.83.99), 09/04/2014 09:54:08 ※ 編輯: chen1025 (60.250.83.99), 09/04/2014 09:56:12 ※ 編輯: chen1025 (60.250.83.99), 09/04/2014 09:58:45 ※ 編輯: chen1025 (60.250.83.99), 09/04/2014 10:00:48

09/04 10:59, , 3F
大量的做法就要考慮了~通常記憶體不會放太多~會爆
09/04 10:59, 3F

09/04 21:35, , 4F
百萬筆以上 好資料庫不用嗎
09/04 21:35, 4F
文章代碼(AID): #1K1g8VbE (java)
討論串 (同標題文章)
文章代碼(AID): #1K1g8VbE (java)