list,set,map三种接口的实现类

一,集合框架的体系结构
在这里插入图片描述
二,实现类
1)ArrayList
底层由数组实现
元素有序且可以重复
可以动态增长 以满足应用程序的需求
元素值可以为null

2)HashSet
元素无序并且不可以重复
只允许一个null元素

3)HashMap
键不能重复
允许使用null值和键
HashMap中的Entry对象是无序排列的

4)区别
区别:ArrayList底层由数组实现,有序存储,而HashSet和HashMap都是无序的。

三、Iterator(迭代器)
1、Iterator接口以统一的方式对各种集合元素进行遍历
其中的两个方法:
hashNext():检测集合中是否还有下一个元素
next():返回集合中的下一个元素

四、hashCode()和equals()
hashCode()不相等则不需要再进行equals()判断,若hashCode()不等,则再去进行equals()判断。
原理:举三个桶的例子
hashCode判断元素在哪个桶里,equals判断桶里哪个是我们要找的
public int hashCode(){
final int prime = 31;
int result = primeresult + month;
result = prime
result + ((name == null)?0 : name.hashCode());
result = prime*result + ((species == null) ? 0 : species.hashCode());
return result;
}
public boolean equals(Qbject obj){
//判断对象是否相等,相等则返回true,不用继续比较属性了
if(this==obj)
return true;
//判断obj是否是Cat类的对象,如果是,则强制转换,返回属性的比较结果
if(obj.getClass()==Cat.calss){
Cat cat = (Cat)obj;
return cat.getName().equals(name)&&(cat.getMonth()==month)&&(cat.getSpecies().equals(species));
}
return false;
}
有了这两个方法以后,在测试类中再添加相同的对象,就无法添加成功了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值