Javase高级编程
一、 集合
/**
集合与数组的比较:
长度:数组的长度固定,声明之后不可变
集合的长度,可以动态修改
元素:数组可以存放基本数据类型和引用类型的元素
集合只能存放引用类型的元素
内容:数组只能存放同一类型的元素
集合可以存放不同类型的元素
Colection集合接口下的两个子类
Set:无序集合,不重复
List:有序集合,可重复
*/
1、List类
/**
* ArrayList:
1.元素可以为空
2.数组
3.线性存储
4.查询效率更高,插入和删除的效率较低(注意特性)
*/
2、/**
LinkedList:
1.可以为空
2.底层结构:链表
3.链表存储
4.查询效率低,添加和删除的效率高(注意特性)
5.功能更多
*/
3、/**
set:
1.无序:元素输入和存储的顺序不一致
2.无重复:两个对象e1和e2,e1.equals(e2)返回值为true,则认为对象重复
HashSet:
底层结构:hash散列
*/
4、/**
* TreeSet:
底层为二叉树(红黑数)
* 存入跟储存的顺序不同
* 保存元素类型必须一致
*
*/
5、/**
Map:以键值对的形式保存键(Key)和值(Value)的映射关系
HashMap和TreeMap
数据结构:HashMap基于hash表
TreeMap基于二叉树(红黑树)
是否可以为空:HashMap允许 null值和null键
TreeMap允许null值但不允许null键
性能调优:
HashMap可以通过调节初始容量和负载因子进行调优
TreeMap无法进行调优,总是处于平衡状态
*/
拓展: