当咱们用自定义的类对象做为key时,咱们必须在程序中覆盖HashCode()和equals()。

Key值既然能够做为对象,那么也能够用一个自定义的类。好比:数组

m.put(new sutdent(“Liucy”,30),”boss”)安全

若是没有语句来断定Student类对象是否相同,则会所有打印出来。并发

 

当咱们用自定义的类对象做为key时,咱们必须在程序中覆盖HashCode()equals()对象

 

注:HashMap底层也是用数组,HashSet底层实际上也是HashMapHashSet类中有HashMap属性(咱们如何在API中查属性)。HashSet实际上为(key.null)类型的HashMap。有key值而没有value值。排序

 

正由于以上的缘由,TreeSetTreeMap的实现也有些相似的关系。资源

注意:TreeSetTreeMap很是的消耗时间,所以不多使用。table

咱们应该熟悉各类实现类的选择——很是体现你的功底。List

 

HashSet VS TreeSetHashSet很是的消耗空间,TreeSet由于有排序功能,所以资源消耗很是的高,咱们应该尽可能少使用,并且最好不要重复使用。程序

基于以上缘由,咱们尽量的运用HashSet而不用TreeSet,除非必须排序。tab

同理:HashMap  VS  TreeMap:通常使用HashMap,排序的时候使用TreeMap

HashMap VS Hashtable(注意在这里table的第一个字母小写)之间的区别有些相似于ArrayListVectorHashtable是重量级的组件,在考虑并发的状况,对安全性要求比较高的时候使用。

 

Map的运用很是的多。

相关文章
相关标签/搜索