java基础集合框架

List的方法:

整个集合框架中,只有List分支才可以按照下标获取元素。

如果修改了subList方法截取到的子集合,则也会直接影响原来的集合如下图: 

迭代器的使用-对集合的遍历 

整个集合框架中只有List分支才可以根据下标获取,其他集合只能通过迭代器或者foreach循环获取元素!可以这么认为,通过迭代器获取元素是所有集合的共性,而根据下标获取元素是List的特性。如果你想任意访问元素,应该用下标获取。而迭代器必须按照顺序访问。

ArrayList:

特点:1.增删效果低 2.查询效率高3.线程不安全

ArrayList底层是数组实现的

LinkedList:

特点:1.增删效率高2.查询效率低3.线程不安全

LinkedList底层是链表实现的

 Set接口:

1.Set中的元素,不能重复

2.Set中的元素,迭代的顺序与添加元素的顺序不同

我们已经知道,Set分支的特点是:元素没有顺序,且不能重复。这个不能重复是如何做到的呢?不同的Set实现类,有不同的方法。

HashSet:

HashSet底层是数组+链表+红黑树,集数组和链表的优点与一身,线程不安全。

Hash算法:Hash算法能很快的判断出一个将要加入集合中的新元素是否在集合中已经出现过

通过hash算法(去重)(添加)元素原理。添加自定义对象类的话需要重写自定义对象类的(equals()和hashCode())的方法

 根据hash算法把元素(对象)存入集合,遵循一下步骤:

1.计算新元素的哈希码

2.根据哈希码找桶位

3.判断桶位是否为空(null),如果是就直接存入新元素

4.如果桶位不为空,就拿着新元素与每一个旧元素比较,都不相同才存入,有一个相同就不存入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值