(Linkedlist和Set集合)day08javaSE基础查漏补缺

1.arraylist 和linkedlist的特点:

Arraylist:底层数组,查询快,增删慢

Linkedlist:底层双向链表,增删快,查询慢

2.Linkedlist中:特有方法:操作首尾元素

push 和addFirst一样,都没有返回值

3.iterater可以迭代Vector

(Vector是JDK1.0时期存在的单列集合 )

4.sort,是按照编码表的顺序进行排序,

ASCII表’0’48,'A’65,'a’97

先比较第一位,再排第二位。

5.匿名内部类:

没有名字的,类中类。

6.Arratlist比较器排序:

o1-o2升序,o2-o1降序

用字符串首字母string.charAt(0)进行排序,首字母一样是会自动比较第二个字母吗

7.a和ac的升序排序

先a后ac

8.对引用类型进行排序,需要告知comparator规则。

9.可变参数方法和其他方法重载时,优先进入重载方法。

可变参数可以接收任意个同类型的参数,底层是一个数组,你传几个,就创建空间为几个的数组

1)一个方法只能有一个可变参数

2)如果方法中有多个参数,可变参数要放到最后。

3)可变参数底层就是一个数组,所以可以传递可变参数的地方,都可以传递数组----int…arr和int[] arr一样;

10.LinkedList集合也可以作为堆栈,队列的结构使用

pop和push

11.LinkedList源码分析???

12.为什么地址值要写成16进制hashCode。

规定,咱也不知道.

13.==是比较的真实地址,不是比较的哈希地址。

14.字符串类和包装类,都重写了hashCode方法。

为什么重写hashCode?

之所以要重写hashCode方法,就是加快–equals判断的速度。
首先比较hash值,hash不同,对象一定不同,hash值相同,比较对象内容

15.nactive,是操作系统的方法或者是其他语言写的方法。

16.因为红黑树需要进行左旋,右旋操作, 而[单链表]不需要,

以下都是单链表与红黑树结构对比。
如果元素小于8个,查询成本高,新增成本低
如果元素大于8个,查询成本低,新增成本高

17.HashSet数组的存储单元里,存储节点对象,对象里面存着哈希值和对象的地址

数组的存储单元里:存储着哈希值和节点的地址吗

18.重写的hashCode方法,扩大31倍哈希碰撞最少,提高equals效率。

19.想保证自定义类的元素唯一,要重写hashcode和equals方法。

20.linkedHashSet用不到。

21.相同变量名,同时修改快捷键:shift+f6

22.treeSet 底层是红黑树,默认升序排序,是大小有序集合。

23.为什么优先比较hashcode,再比较equals

hash算法是二进制算法,计算式本质是二进制,所以hash算法速度很快。如若hashCode不同则可直接存储不用equlas比较。所以先计算hashCode大大加快了存储速率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值