Javase笔记之集合类
来源:互联网 发布:淘宝饰品店店铺介绍 编辑:程序博客网 时间:2024/04/30 16:23
记录Java学习的笔记,关于集合的小总结
首先,集合类是为了保存数量不确定的数据,以及保存具有映射关系的对象。
1 集合与数组的区别
数组元素既可以是基本类型,也可以是对象(引用变量)
而集合只能保存对象。
(两者实际上保存的都是引用变量)
2 collection大框架
collection
set Queue List
Enumset Sortset Hashset Deque Priority ArrayList Vector
Queue
Treeset LinkedHashSet ArrayDeque LinkedList stack
3 Map 框架
v Map
EnumMap identityHashMap HashMap Hashtable LinkMap SortedMap WeakHashMap
LinkedHashMap properties TrerMap
4 使用java增强的 Iterator遍历集合元素(凡是collection类的都可以)
例:
Iterotor it=集合.iterator();
while(it.hasNext())
{
Object obj=it.next();
}
5 set集合
set集合是不包含重复元素的集合,这是总的特征。
6 HashSet类
HashSet按Hash算法存储元素,因此具有很好的存取和查找功能。
特点:
(1) 不能保证元素的添加顺序。
(2)不是同步的。
(3)集合元素可以是null。
HashSet集合元素判断相等:
其通过equals方法返回true且Hashcode值相等。
若是通过equals方法返回false但Hashcode值不相等,则这两个对象会
保存在一个位置,通过链表相连。
7 LinkedHashSet类
LinkedhashSet以Hashcode值决定存储位置,以链表维护元素次序。
8 TreeSet类
(1)TreeSet采用红黑树的数据结构来储存集合元素。
(2)TreeSet会调用comparableTo方法(Object Obj)来比较元素
之间大小关系,然后将元素升序排列。
(该方法返回零说明相等)
(TreeSet最好只添加一种类型的对象)
9 EnumSet类
EnumSet的所有元素都是指定枚举的枚举值
(1)EnumSet在内部以位向量的形式储存。
(2)EnumSet不允许加入null。
10 List集合
List集合代表有序且可重复的集合,集合中每个元素都有其对应
的索引,例如第一个加的元素索引为0。
(1)与Set集合相比,List集合增加了根据索引来插入、删除、替换
集合元素的方法。
(2)List集合判断元素相等是equals()方法比较返回false。
11 ArrayList实现类
ArrayList是基于数组实现的List类,所以List集合封装了一个动态的
允许再分配的Object数组。
(1)ArrayList是线程不安全的,所以性能较高。
12 Queue集合
Queue用于模拟队列这种数据结构,头部存放最先进的元素,尾部
存放最后进的元素,通常,队列不允许随机访问队列元素。
13 ProprityQueue实现类
ProprityQueue存放队列元素的顺序是按重新排列队列元素的大小重
新排序,不允许插入null元素。
14 Deque接口和AraayDeque实现类
Deque接口是Queue接口的实现类,该接口定义了一些双端队列的方
法,允许从两端操作队列元素。
(1)ArrayDeque类
栈:先进后出
以数组形式保存元素
15 LinkedList实现类
(1)可以通过索引随机访问集合的元素.。
(2)既可以当栈使用,也可以当队列使用。
(3)以链表的形式储存元素。
随机访问集合元素性能较差,插入、删除元素性能较好。
16 java增强的Map集合
Map用于保存具有映射关系的数据,一组保存Key,一组保存Value,
Key不允许重复,通过equals()方法比较大小,key和value具有一
对一的关系。
(1)从源码看,Java先是实现了Map类,再通过包装一个所有value
都为null的Map就实现了Set集合。
17java8改进的HashMap和Hashtable实现类
(1)区别:HashMap是线程不安全的。
Hashtable不允许将null作为key或value,法则将引发NullPointerException
异常。
(2)相同点:两个key的判断相等方式,都是通过equals()方法比较返回
true且Hashcode值相等。
18 LinkedHashMap实现类
通过双向链表来维护key-value对的次序。
19 ShortedMap接口和TreeMap实现类
类似于ShortSet和TreeSet,判断元素相等的方法都是通过compareTo()方
法来比较。
20 WeakHashMap实现类
WeakHashMap的key只保留了对实际对象的弱引用,这意味着WeakHashMap
key引用的对象有可能被垃圾回收,WeakHashMap也会自动删除这些key所对
s应得key-value对。
21 identityHashMap实现类
x在判断key相等时,两个key严格相等(key1=key2);
(1) 允许null作为key和value
22 EnumMap实现类
(1)EnumMapt所有key必须是单个枚举的枚举值。
(2)EnumMap在内部以数组形式保存。
(EnumSet在内部以位向量形式保存)
(3)EnumSet自然排序。
(4)不允许key位null,但允许value为null。
(EnumSet不允许加入null)
- Javase笔记之集合类
- javaSE学习笔记之集合
- JAVASE学习笔记之集合
- JavaSE学习笔记之-----集合
- JavaSE高级之集合类
- JAVASE之集合框架
- JAVASE之集合
- Javase基础学习笔记之集合(1)
- Javase基础学习笔记之集合(2)
- Javase基础学习笔记之集合(3)
- Javase基础学习笔记之集合(4)
- [JavaSe学习笔记-集合框架]
- JavaSE学习笔记--集合框架
- 【JavaSE笔记】集合(一)_Collection
- 【JavaSE笔记】集合(三)_Set
- 【JavaSE笔记】集合(五)_Map
- javaSE 集合类学习
- JAVASE之集合框架-----List
- 让我怎能过大年
- Linux/Windows ssh公私钥访问
- Android Camera中我遇到的巨坑
- iOS-UIAlertController弹出延迟(UIAlertController弹出缓慢,tableViewCell点击时背景颜色改变)
- linux shell中利用awk获取关键字符的用法,实例说明。
- Javase笔记之集合类
- java食品管理系统(ArrayList的使用)
- iOS开发-读取“健康”中的步数和步行+跑步距离
- 多线程买票
- LeetCode Shell
- scp命令
- 算法学习(九)贪婪技术
- 如何分析log?
- 欢迎使用CSDN-markdown编辑器