A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2019-7-26 20:28  /  1564 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.Set接口下的集合是如何保证无序不可重复的
Set接口的集合实现类对象比如说HashSet和TreeSet,依靠哈希值作为对象属性值的唯一判断,继承Object重写了父类的hashcode()方法,
可以根据对象的哈希值计算存储位置
1根据对象的哈希值计算存储位置
如果当前位置没有元素则直接存入
如果当前位置有元素存在,则进入第二步
当前元素的元素和已经存在的元素比较哈希值
如果哈希值不同,则将当前元素进行存储
如果哈希值相同,则进入第三步
通过equals()方法比较两个元素的内容
如果内容不相同,则将当前元素进行存储
如果内容相同,则不存储当前元素,舍弃当前元素



2.我们为什么要重写HashCode( )和equals()方法?
默认情况下是按照父类的hashcode以及equals,前者是返回一个对象在内存中的地址值,后者是比较两个对象的地址值
根据实际意义上必须继承父类的这两个方法并且重写,可以作为对象的属性值的判断,而且比较哈希值以后,通过重写equals方法,也可以比较属性值的内容,层层把关。


3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?
先判断HashCode,哈希表的底层是数组和链表结构。先通过调用HashCode方法来计算对象的哈希值,然后计算存储位置,位置是空的就直接存储进去,之后再做其他判断。
4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?
comparable接口是实现它的抽象方法compareTo方法,并且重写这个方法;
Comparator接口是实现它的compare方法,第二种方法使用比较多,就是让集合构造方法接收Comparator的实现类对象,重写compare(T o1,T o2)方法。

5.什么是泛型?使用泛型有什么好处?

泛型就是1.5版本引入的特性,就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。这种参数类型可以用在类、方法和接口中,分别被称为泛型类、泛型方法、泛型接口
- 把运行时期的问题提前到了编译期间
- 避免了强制类型转换,

回复 使用道具 举报
1.Set接口下的集合是如何保证无序不可重复的
Set接口的集合实现类对象比如说HashSet和TreeSet,依靠哈希值作为对象属性值的唯一判断,继承Object重写了父类的hashcode()方法,
可以根据对象的哈希值计算存储位置
1根据对象的哈希值计算存储位置
如果当前位置没有元素则直接存入
如果当前位置有元素存在,则进入第二步
当前元素的元素和已经存在的元素比较哈希值
如果哈希值不同,则将当前元素进行存储
如果哈希值相同,则进入第三步
通过equals()方法比较两个元素的内容
如果内容不相同,则将当前元素进行存储
如果内容相同,则不存储当前元素,舍弃当前元素



2.我们为什么要重写HashCode( )和equals()方法?
默认情况下是按照父类的hashcode以及equals,前者是返回一个对象在内存中的地址值,后者是比较两个对象的地址值
根据实际意义上必须继承父类的这两个方法并且重写,可以作为对象的属性值的判断,而且比较哈希值以后,通过重写equals方法,也可以比较属性值的内容,层层把关。


3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?
先判断HashCode,哈希表的底层是数组和链表结构。先通过调用HashCode方法来计算对象的哈希值,然后计算存储位置,位置是空的就直接存储进去,之后再做其他判断。
4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?
comparable接口是实现它的抽象方法compareTo方法,并且重写这个方法;
Comparator接口是实现它的compare方法,第二种方法使用比较多,就是让集合构造方法接收Comparator的实现类对象,重写compare(T o1,T o2)方法。

5.什么是泛型?使用泛型有什么好处?

泛型就是1.5版本引入的特性,就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。这种参数类型可以用在类、方法和接口中,分别被称为泛型类、泛型方法、泛型接口
- 把运行时期的问题提前到了编译期间
- 避免了强制类型转换,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马