第八章 集合
来源:互联网 发布:网络的安全机制有哪些 编辑:程序博客网 时间:2024/06/05 11:46
8.1 集合和数组区别:
数组:一旦声明了数组长度无法改变,只能保持指定的数据类型,元素的数据类型必须相同,不能混排。
集合:长度和动态扩容,元素类型可以是任何类型,可以混合使用。
8.2 List接口:
ArrayList:
ArrayList可以看作可变长度的数组,在内存中存储空间是连续的。
优点:随机访问或遍历时效率较高。
缺点:添加和删除元素时效率较低。
LinkedList:
采用的链表结构进行存储,在内存中存储空间是不连续的。
优点:添加和删除元素是效率较高
缺点:随机访问或遍历时效率较低。
Vector:
Vector类似与ArrayList的线性结构,Vector是基于线程安全的,在多线程中使用;ArrayList是非线程安全的,效率较高
Stack:
Stack(栈):后进先出(Last In First Out) LIFO
Quence:
队列:先进先出(First In First Out) FIFO
8.3 Set接口:
Hashset:
HashSet:采用哈希表的方式存储。
优点:查询,添加,删除效率较高
HashSet如何保证其元素的唯一性?
在添加元素时调用hashCode()获取元素的哈希码,判断要添加元素的哈希码是否相同,如果相同调用equals方法比较内容是否相同;如果哈希码不相同,equals方法将不再调用。
如果两个对象的equals比较的结果为true,其hashCode一定相同;反之则不成立。
LinkedHashSet:
LinkedHashSet继承了HashSet,采用的是哈希码+链表的结构进行存储,其中的元素有序(添加顺序)。
TreeSet:
TreeSet:采用二叉树的方式进行存储,其中元素有序(大小顺序)。要添加元素是必须实现Comparable接口或传入一个比较器(需要实现Comparator接口)
8.4 Map接口:
HashMap:
HashMap类似于HashSet,采用的是哈希码进行存储无序。
Hashtable:
Hashtable与HashMap类似,不同之处主要是以下两点:
1.HashMap是非线程安全的,而Hashtable是线程安全的
2.HashMap中的键和值都运行为null,而Hashtable不允许。
LinkedHashMap:
LinkedHashMap是HashMap的子类,类似于LinkedHashSet,采用的是哈希表+链表的结构存储数据。其中元素是有序的(添加顺序)
TreeMap:
TreeMap采用二叉树的方式存储,与TreeSet类似。其中的元素有序(大小顺序)。
要求添加的元素必须是可比较大小
1.实现Comparable接口
2.创建一个比较器(实现Comparator接口)
在添加元素时根据键的自然顺序进行存储数据。
8.5 Collections 类:
Collections类是一个对Collection集合进行操作的工具类型,其中提供一些静态的工具方法方便操作
sort()
reverse()
binaySearch()
.....
- 第八章集合运算
- 第八章 集合
- 第八章:集合框架(JCF)
- 第八章 字典和集合
- java集合第八章WeakHashMap的用法
- FKJAVA读书笔记--第八章--JAVA集合
- 第八章:exception&游标&rowtype&集合/数组
- java第八章集合中Properties的用法
- java第八章集合中TreeMap的用法
- java第八章集合中的IdentityHashMap的用法
- java第八章集合的EnumMap的用法
- 第八章:plsql编程基础(exception、游标、rowtype、集合、数组)
- Java——第八章(集合类)
- 我的学习之路_第八章_map集合
- 第八章El表达式第五节el表达式集合操作
- Java基础知识学习之路-09-第八章-Java集合
- java第八章集合中的Collections操作集合的工具类
- 第八章
- linux磁盘分区管理
- RedisTemplate 的hash结构测试类, 使用场景 购物车
- LeetCode 167. Two Sum II
- 将Java文件转换为HTML文件
- JavaScrip的数据类型及变量
- 第八章 集合
- Javaweb题
- ReactNative之FlatList组件使用方法总结
- web性能优化之DOM篇
- jdbc在模糊搜索时候报错:Parameter index out of range
- 字符串与字符数组的区别
- 可编辑的select下拉框
- 数字证书原理,公钥私钥加密原理
- matlab与python