1.Set接口下的集合是如何保证无序不可重复的
答: 因为被HashSet实现所以能保证元素五序 , 底层数据是哈希表所以元素不能重复
2.我们为什么要重写HashCode( )和equals()方法?
答: 如果要保证集合内元素的唯一性就要重写HashCode( )和equals()方法
3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?
答: 1. 先判断HashCode()然后再判断equals() ;
2. 因为数据存入得时候会先判断哈希码值是否相同 , 如果相同再判断内容是否相同
4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?
答: 1. Comparable 是用无参构造方法使用的是自然排序对元素进行排序的 , 在实体类写接口 重写compareTo方法
2. Comparator 是用有参构造方法使用的是自然排序对元素进行排序的 , 创建集合的时候 , 作为实现类传递
3. Comparator用的比较多 , 因为Comparable将比较规则和定义实体类绑定在了一起 , 耦合度高 , 对后期维护不利
5.什么是泛型?使用泛型有什么好处?
答: 1. 泛型是JDK5中引入的特性, 提供了编译时类型安全检测机制 , 该机制允许在编译时检测到非法的类型
2. 好处: 把运行时的问题提前到编译期间 . 避免强制转换
|