set注意点map遍历
生活随笔
收集整理的這篇文章主要介紹了
set注意点map遍历
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/**
- 使用各種set存儲(chǔ)多個(gè)學(xué)生信息
- 問題1:為什么課程名稱(String)放入到HashSet、LinkedHashSet都可以保證唯一性,但是學(xué)生(Student)
- 放入到HashSet、LinkedHashSet,卻無法實(shí)現(xiàn)唯一性。
- 問題2:為什么課程名稱(String)放入到TreeSet都可以保證唯一性、有序性,但是學(xué)生(Student)
- 放入到TreeSet,卻直接拋出異常。
- java.lang.ClassCastException: com.bjsxt.set.Student cannot be cast to java.lang.Comparable
- 思考: 是否因?yàn)镾tring類是系統(tǒng)類,Student是用戶自定義類
- String類應(yīng)該已經(jīng)做了某些操作,但是Student類還沒有做
- 解答問題1:任意對(duì)象放入HashSet、LinkedHashSet等底層結(jié)構(gòu)有哈希表的集合中,必須重寫兩個(gè)方法
- hashCode() equals()
- String類已經(jīng)重寫了這兩個(gè)方法,而Student類沒有重寫這兩個(gè)方法
- 解答問題2:任意對(duì)象放入了TreeSet等底層結(jié)構(gòu)是紅黑樹的集合中,都需要實(shí)現(xiàn)Comparable接口,并實(shí)現(xiàn)其方法。
- 問題3:Comparable接口至多指定一種規(guī)則,如果希望按照更多的排序規(guī)則放入TreeSet等集中,該怎么辦?
- 解決:可以使用外部比較器Comparator。
*/
Set<Map.Entry<Integer,Student>> entrySet =map.entrySet();Iterator <Map.Entry<Integer,Student>>it = entrySet.iterator();while(it.hasNext()){Map.Entry<Integer,Student> entry= it.next();Student stu = entry.getValue();System.out.println(stu);}總結(jié)
以上是生活随笔為你收集整理的set注意点map遍历的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: warthunder配置要求?
- 下一篇: 战争雷霆配置高吗?