java集合框架

集合框架:在集合框架之前时容器类,可以存储多个数据
集合框架时为表示和操作集合的一种统一的标准结构,任何集合框架都包含三种大块类容:对外的接口,接口的实现,对集合运算的算法(底层都i包含着一种数据结构的算法)存在于java.util类中

常用的框架接口规范:
list:可以重复,必须有序
set::不能重复,可以无序
map:键值对应关系

vector类:
增 add()增加到末尾
v.add(集合) 添加整个集合
v.addAll(集合) 添加集合的内容
删除 remove
改 set

stack
后进先出的栈(数据结构的一种)
消息的集合
建议栈使用ArrayDeque

ArrayList
未加synchroniazed 线程不安全
vector 加了同步 线程安全 性能较ArrayList低
ArrayList list=Collection.synchroniazed(new ArrayList);
常用方法参照Vector;

LinkedList:链表实现本质时双向链表 单向队列 双队列 栈的实现
线程不安全 在LinkedList类中有很多方法有相同作用 应为在此类中有很多数据结构

常用方法:链表和队列都特擅长操作头和尾
因为LinkedList实现了list所以也有get方法

解决 迭代集合操作 和删除并发异常的
在Collection中删除指定元素 remove 该方法只能删除集合中的的元素 不呢个删除迭代器线程中的方法 此时 使用迭代器中的remove方法 不能用foreach it.remove该方法会同时删除了两个线程中的元素,不会出现异常

set 唯一 可以无序

hash算法 通过一定的算法确定键值之间的关系 适用于查询,和少量的插入 需要扩容
在hashset中如何判断两个对象是否相等
1.两个对象的equals
2.两个对象的hashCode的方法返回值相等先判断1,在判断2

a.1相同,2也相同则视为同一个对象,则不保存hashbiao中
b.1不同 2相同 同槽位的链表中
对象的hashCode值决定了对象在hash表中的储存位置

LinkedHashSet底层才有哈希表和链表的算法;
哈希表保证唯一性
链表

treeSet 底层为红黑树 做范围查询
会对所储存的元素进行自然排序(从小到大)但是必须保证储存的必须时同一种数据类型
较set新增 first last最低的 和最高的
headset(t) 严格小于t
treeset的排序规则
a.自然排序:就是按照元素的升序进行排列()
实现Comparable接口中的compareto 此API 大于返回正数,等于返回零 小于返回负数

b.定制排序:实现comparator接口 中的caompare() 大于返回正数,等于返回零 小于返回负数

map以后可以做javaBean的对象 属性名 属性值,可以坐缓存(工具箱)
list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值