OOP-20年秋第五周

JAVA第五周

  1. Array Collection(←重点)

  2. 数组是固定的fixed,存放是连续的,可以随机访问

  3. Collection只能有对象(基本数据类型会自动包装)

  4. 如果是字符串数组
    –这个时候其实一个字符串都没有…

  5. 二维数组是这么分配空间的呢?
    –先弄一个一维数组,这些一维数组里面放的引用指向新的一维数组
    –如此形成了二维数组,而空间并不是连续的
    –由此有个区别 java和c不一样 二维可以长度有变 变成锯齿形状
    在这里插入图片描述

  6. Arrays类类似System类是私有构造函数+静态方法
    –可以使用sort快速排序之类的操作

  7. Collection是泛型,而且是个接口

  8. Set不可以重复

  9. List list =new Arraylist();
    –这样很好!比Arraylist list好
    –为什么叫Arraylist?
    –是一个线性表(数组实现的),他的数组扩容非常的复杂

  10. 什么是Linkedlist?
    –单链表实现的

  11. Set和List差距很大
    –顺序怎么定的?
    –待
    –不能重复,会自动消掉

在这里插入图片描述

–因为没重写equals
–第一个加入一定不会比较,但是如果每个都会equals,那么加入第100个就比100次,非常的不合理
–检测重复值==查找
–为了达到O(1)需要一个hash算法
–所有判断都和你的hashcode业务逻辑有关系
13. 由于业务逻辑可能不太好,可能会hashcode冲突,这个时候再使用equals进行比较可以很大程度上减少时间
14. Hash算法到底提供了什么帮助呢?
–底层可以看做一个连排的桶,hash值是一个索引,如果hash一样就一起进入一个桶,这个时候会用equals比较,如果相等,不进入桶,如果不等,则正确进入桶内,此时equals比较的次数只看桶内长度的大小。
–不应该参加hash的是,会变的和辨识度低的,要选逻辑上很稳定的东西
15. 同时思考Treeset,它需要有一个能够比较大小的逻辑,所以需要重写compareto方法
–但是我从Comparable接口得到的比较不够灵活(natural)
–解决办法
在这里插入图片描述

–泛型规定了一个种类,乱七八糟的东西放不进去,特别安全
在这里插入图片描述

–防止你取的乱七八糟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值