码迷,mamicode.com
首页 > 编程语言 > 详细

java 集合类

时间:2017-10-07 17:42:06      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:hashset   集合类   进一步   shc   因子   string   dha   hashmap   判断   

1: 为什么HashMap容量是2的幂?什么是负载因子?

  容量:桶的数量。

  负载因子:元素个数/容量。

         是2的幂的原因: 让元素加入到桶后,分布的更均匀。

2:  为什么String, Integer这样的wrapper类适合作为key?

因为是不可变的,final的,而且重新写了hash()和 equals().、不可变是必要的:为了计算hashcode,防止key的值变化。自己定义的类如果能满足这个要求可以作为map的key。

3:HashMap默认容量是16, 默认装填因子是0.75。

4:HashSet  VS   TreeSet?

                    |——SortedSet接口——TreeSet实现类
Set接口—  |——HashSet实现类
                                         |——LinkedHashSet实现类

HashSet:  不保证排列顺序/不是同步的/最多能放一个null

当向hashset存入一个元素,HashSet会调用hashCode(),来决定存放位置。

在HashSet中比较两个对象是否相等的方法是:先比较两个对象的hashCode()值是否相等,如果不相等就认为两个对象是不相等的,如果两个对象的hashCode相等就继续调用equals()方法进一步判断两个对象是否相等,如果equals()方法返回true认为两个对象相等,返回false认为两个对象不相等。

TreeSet是一个有序集合,元素中安升序排序,缺省是按照自然顺序进行排序,意味着TreeSet中元素要实现Comparable接口;我们可以构造TreeSet对象时,传递实现了Comparator接口的比较器对象.

HashSet是基于Hash算法实现的,其性能通常优于TreeSet,我们通常都应该使用HashSet.

在我们需要确定是否相等的时候用到HashMap;            排序的功能时,我门才使用TreeSet;

java 集合类

标签:hashset   集合类   进一步   shc   因子   string   dha   hashmap   判断   

原文地址:http://www.cnblogs.com/liufei1983/p/7634826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!