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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2019-4-24 16:50  /  3445 人查看  /  58 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.Set接口下的集合是如何保证无序不可重复的
   Set集合是用哈希表存储元素的所以是无序的;
(1)首先先计算存入元素的哈希值,根据哈希值算出存储位置,
如果该位置有元素,再比较哈希值,如果该位置没有元素,直接存储
(2)如果哈希值相同,调用equals方法比较元素的内容,
如果内容相同不存储,否则内容不同存储


2.我们为什么要重写HashCode( )和equals()方法?
HashCode()和equals()默认继承至Object;
Object的计算和比较方式通常都不能满足我们的需求,所以需要重写;

3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?

数据在存入Set集合的时候,先判断HashCode()
因为哈希值是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值,
若哈希值不同则对象一定不相同,与equals()方法相比效率高,在哈希值相同

的情况下才判断equals(),判断对象内容是否相同


4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?

Comparable:实体类实现此接口,重写compare To(T o)方法,定义比较规则
Comparator:测试类中采用匿名内部类方式创建,重写compare(T o1,T o2)方法,定义比较规则
Comparator接口使用的较多,因为Comparable比较规则和定义实体类绑定在了一起,耦合度高,不利于后期维护

5.什么是泛型?使用泛型有什么好处?
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数
(1).将集合存储元素,对元素进行类型强转,异常提前到了编译期
(2).避免了强转的麻烦
回复 使用道具 举报
1.Set接口下的集合是如何保证无序不可重复的
   Set集合是用哈希表存储元素的所以是无序的;
(1)首先先计算存入元素的哈希值,根据哈希值算出存储位置,
如果该位置有元素,再比较哈希值,如果该位置没有元素,直接存储
(2)如果哈希值相同,调用equals方法比较元素的内容,
如果内容相同不存储,否则内容不同存储


2.我们为什么要重写HashCode( )和equals()方法?
HashCode()和equals()默认继承至Object;
Object的计算和比较方式通常都不能满足我们的需求,所以需要重写;

3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?

数据在存入Set集合的时候,先判断HashCode()
因为哈希值是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值,
若哈希值不同则对象一定不相同,与equals()方法相比效率高,在哈希值相同

的情况下才判断equals(),判断对象内容是否相同


4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?

Comparable:实体类实现此接口,重写compare To(T o)方法,定义比较规则
Comparator:测试类中采用匿名内部类方式创建,重写compare(T o1,T o2)方法,定义比较规则
Comparator接口使用的较多,因为Comparable比较规则和定义实体类绑定在了一起,耦合度高,不利于后期维护

5.什么是泛型?使用泛型有什么好处?
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数
(1).将集合存储元素,对元素进行类型强转,异常提前到了编译期
(2).避免了强转的麻烦
回复 使用道具 举报
1.Set接口下的集合是如何保证无序不可重复的
   Set集合是用哈希表存储元素的所以是无序的;
(1)首先先计算存入元素的哈希值,根据哈希值算出存储位置,
如果该位置有元素,再比较哈希值,如果该位置没有元素,直接存储
(2)如果哈希值相同,调用equals方法比较元素的内容,
如果内容相同不存储,否则内容不同存储


2.我们为什么要重写HashCode( )和equals()方法?
HashCode()和equals()默认继承至Object;
Object的计算和比较方式通常都不能满足我们的需求,所以需要重写;

3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?

数据在存入Set集合的时候,先判断HashCode()
因为哈希值是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值,
若哈希值不同则对象一定不相同,与equals()方法相比效率高,在哈希值相同

的情况下才判断equals(),判断对象内容是否相同


4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?

Comparable:实体类实现此接口,重写compare To(T o)方法,定义比较规则
Comparator:测试类中采用匿名内部类方式创建,重写compare(T o1,T o2)方法,定义比较规则
Comparator接口使用的较多,因为Comparable比较规则和定义实体类绑定在了一起,耦合度高,不利于后期维护

5.什么是泛型?使用泛型有什么好处?
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数
(1).将集合存储元素,对元素进行类型强转,异常提前到了编译期
(2).避免了强转的麻烦
回复 使用道具 举报
1.Set接口下的集合是如何保证无序不可重复的
   Set集合是用哈希表存储元素的所以是无序的;
(1)首先先计算存入元素的哈希值,根据哈希值算出存储位置,
如果该位置有元素,再比较哈希值,如果该位置没有元素,直接存储
(2)如果哈希值相同,调用equals方法比较元素的内容,
如果内容相同不存储,否则内容不同存储


2.我们为什么要重写HashCode( )和equals()方法?
HashCode()和equals()默认继承至Object;
Object的计算和比较方式通常都不能满足我们的需求,所以需要重写;

3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?

数据在存入Set集合的时候,先判断HashCode()
因为哈希值是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值,
若哈希值不同则对象一定不相同,与equals()方法相比效率高,在哈希值相同

的情况下才判断equals(),判断对象内容是否相同


4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?

Comparable:实体类实现此接口,重写compare To(T o)方法,定义比较规则
Comparator:测试类中采用匿名内部类方式创建,重写compare(T o1,T o2)方法,定义比较规则
Comparator接口使用的较多,因为Comparable比较规则和定义实体类绑定在了一起,耦合度高,不利于后期维护

5.什么是泛型?使用泛型有什么好处?
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数
(1).将集合存储元素,对元素进行类型强转,异常提前到了编译期
(2).避免了强转的麻烦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马