集合
来源:互联网 发布:linux shell面试题 编辑:程序博客网 时间:2024/06/05 20:48
一、 List接口
元素有序,可重复。主要三种:ArrayList、LinkedList、Vector
这三种都是List接口的实现类,使用上完全一样,只是实现原理不同,效率不同。
ArrayList:
1)底层数组实现
2)查找快,增删慢
3)线程不安全,效率高
LinkedList:
1)底层链表实现
2)增删快,查找慢
Vector:
1)与ArrayList基本一样
2)线程安全(线程同步),效率低
二、Set接口
Set集合无序,不允许有重复元素,集合通过存入对象的equals方法来保证集合中没有重复元素。
HashSet:
1)HashSet是Set的实现类,因此也没有重复元素
2)底层使用哈希算法保证没有重复元素
TreeSet:
1)TreeSet集合通过二叉树算法保证无重复元素,并对元素进行排序
2)在使用TreeSet时必须指定比较的算法,指定的方式有两种:
自然顺序:将要存储的类实现Comparable接口,重写compareTo方法,
在方法中指定算法
比较器顺序:在创建TreeSet时,传入一个比较器Comparator,在比较
器的compare方法中指定算法
三、 Map接口
1)一组成对的”键值对”对象,允许根据键来查找值
2)Map集合的"键"不允许有重复,值可以有重复,所以Map的所有键构成了一个Set集合
3)可以通过键获得值,反之则不能
4)Map集合存储元素使用put(key,value)方法
HashMap:
1)线程不安全,存取速度快,允许存放null键,null值。
2)通过HashSet原理保证键唯一性
Hashtable:
线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。
TreeMap:
1)通过二叉树算法保证键唯一性
2)对键进行排序,排序原理与TreeSet相同。
四、泛型
1)由于集合可以存储不同类型的数据,所以取元素时有可能会导致类型转换错误
2)JDK1.5增加了新特性泛型,为了减少操作集合时出错的几率
3)集合一旦声明了泛型,便只能存储同一类型的对象了
五、Collections工具类
1)工具类,提供了对集合的常用操作
2)对集合进行查找
3)取出集合中的最大值,最小值
4)对List集合进行排序
六、Arrays工具类
1)工具类,提供了对数组的常用操作
2)将数组转成List集合
3)对数组进行排序
4)对数组进行二分查找
5)将数组转为字符串显示形式- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- Python列表的增删改查和元祖
- new/delete、malloc/free关系
- electron工具打包html成桌面应用
- Fresco的初步介绍
- 关于IPMI的几个问题
- 集合
- sizeof与strlen的区别
- iOS开发-地图中地理围栏的使用,等待写。。。。
- Qt 信号槽传递自定义结构体参数 详解
- 最常用的Linux命令总结
- PHP文件操作
- kubernetes 调度控制原理
- maven配置文件pom.xml详解
- 求一个集合的所有子集 输出一个数所有平方和的情况 背包问题的递归解决