今天要分享的比較偏演算法
標題是下"以實體ArrayList特定內容更新重複元素"
其實某種意義上來說更相似於"資料更新"
今天的要求如下
1. 搜集使用者資料,需要填入"姓名"、"年齡"、"補充"三個欄位
2. 如果姓名已經有存在,則自動更新其他兩個欄位的內容
那麼,來看看吧
大家可以點看看玩一下哦XD
那麼,這是怎麼實踐的呢?
首先,在全域中(第4行)宣告一個ArrayList
private static ArrayList list = new ArrayList();
然後跟使用者索取資料,並加入到陣列中(10~17行)
/**取得輸入資料*/ Scanner scanner = new Scanner(System.in); System.out.println("姓名: "); String name = scanner.next(); System.out.println("age: "); String age = scanner.next(); System.out.println("none: "); String none = scanner.next(); list.add(new TrySet(name, Integer.parseInt(age), none));
再來是撰寫更新演算(第20行及37~58行)
ArrayList<TrySet> newList = getSingle(list);
private static ArrayList getSingle(ArrayList list) { ArrayList tempList = new ArrayList<>(); for (Object obj : list) { if (!tempList.contains(obj)) { tempList.add(obj);//增加 } else { tempList.set(getIndex(tempList, obj), obj);//更新 } } return tempList; }
這邊還要注意粉底白字部分,如果只是設定一般Contains(包含)的話沒辦法達到效果
所以我們在TrySet這個實體類內自定義判斷方法
請見87~92行override的部分
這邊就是要我的程式依據name的欄位來判斷輸入是否重複
最後在37~47行將重複資料更新or非重複資料做陣列新增
然後在21~27行輸出資料,搞定!(;´д`)ゞ
請原諒我這篇打得非常地簡陋
但是簡陋歸簡陋,這個也是有被我實際套用到專案的,我也不是在亂寫(┼д┼;)
這週太忙了,為了週更我只好想些短文混過去XD
那麼這篇到此,雖然不知道有沒有機會幫助到別人
不過如果本文對你有幫助的話...
文章標籤
全站熱搜
感覺很不賴~謝謝分享~假日愉快
好像很晚才回覆你...謝謝來訪,連假愉快(੭ ◕㉨◕)੭
~~~20 新夥伴++
收到~謝謝爺!
感謝分享 你分享的文章感覺都很花時間 非常值得拍5下!
之前也有人跟我問過這個問題,我的文章的確超花時間~
拍5下~~~~
多謝:D
你的專業技能真的太專業了,我只能來幫你拍手
那就來拍手吧!哈哈哈
感謝分享!送上火箭+1
感謝:D 滴水之恩湧泉相報 我只好去你那邊推20了!!
很棒拍手鼓勵45
多謝多謝:D
嗨 宅宅 快起來動一動 跟著解接萬謀兔謀
灣謀兔謀~
依舊看不懂,只能幫你拍拍手
來訪就很感謝了🙏
雖然精簡,不過還是非常的專業^^ (已經用力拍五下哩)
多謝你!!
*****
*****
直接拍五下:)
感謝:D
週三愉快喔~~~
哎呀...不小心拖到連假愉快了ε=┏(・ω・)┛
這篇比較短 但還是推專業 😂 拍拍手
多謝多謝( ・ㅂ・)و ̑̑
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
嗨嗨 來看看你了
嗨嗨~非常感謝你的來訪喔:D
拍手~~
感謝感謝:D
還是看不懂 主要就是來拍手的
很好,很誠實(笑)
早安~ 拍五下 總覺得大大在寫文時一定花超多時間在整理圖片和文字。 也太仔細了!
嗚嗚嗚你講得其實沒錯XD 寫一篇這種文都得花上最少半天是真的~
超棒的 點了好幾個來拍~~~
謝謝啦~~
感謝好友分享
謝謝來訪