一、List接口及其实现类
List接口的两个特点:
(1)有序的,这里的有序并不是指排好了序,而是指元素放进去的顺序和取出来的顺序是一样的
(2)可重复的,允许有相同的元素也存
链表-LinkedList
LinkedList底层采用链式存储结构,插入、删除元素时不会引起大量元素的移动,效率高。他专门提供了对尾部和头部添加和删除的操作方法,而且效率很高
二、Set接口及其实现类
Set接口的结构特点:
(1)无序的,即放进去的顺序和出来的顺序不同
(2)不可重复的,注重独一无二的性质
HashSet是根据对象的哈希值来确定1元素在集合中的存储位置,因此具有良好的存储和查找性能
TreeSet则是以二叉树的方式来存储元素,它可以实现对集合中的元素进行排序
引用相等性
引用堆上同一个对象的两个引用是相等的,调用hashCode()结果相同;判断两个引用是否相等,可以使用= =来比较变量上的字节组和,引用到相同的对象,字节组合也会一样
对象的相等性
对象本身是相等的;对上的两个不同对象在意义上是相同的。
如何让Set添加不进去对象本身是相等的对象呢?
TreeSet
TreeSte是Set接口的另外一个实现类,它和HashSet很相似,也是不可重复的,但是有一点不同,他会一直保持集合处于有序的状态
使用TreeSet必须要知道的事情:
结合中的元素必须是实现Comparable接口的类型
使用带Comparator参数的构造方法来创建TreeSet
二、Map接口
特典:
(1)键(Key)不允许重复
(2)一个键(Key)只能映射一个值(Value)
HashMap
HashMap底层的实现利用了哈希表结构,因而集合中的元素仍然不会按次序排列。
TreeMap
TreeMap底层采用红黑树结构,而HashMap适应哈希表结构
TreeMap中的元素按Key自动排序,而HashMap是无序的
java集合框架
最新推荐文章于 2024-09-08 21:42:31 发布