java集合总结
1.内存中多个相同数数据类型的存储容器
数组 集合
2.数组存储的特点:连续的
数组存储的弊端
(1)长度一旦确定,就不能修改,如果要修改,那么程序员就要创建新的数组,然后
复制元素等,比较麻烦
(2)数组无法获取有效元素的个数,需要借助例如total这样得变量
3.集合存储的优点:
集合的底层存储结构有很多种,程序员在选择时可以多样化。
可以选择有序的,无序的,可重复的,不可重复的。
4.数据结构研究的问题
集合的物理结构由两种演化
(1)数组
(2)链式存储结构
依赖于结点类型
单链表:
class Node{
Object data;
Node next;
}
双向链表:
class Node{
Object data;
Node next;
Node prev
}
二叉树:
class Node{
Object data;
Node Parent;
node left;
node right;
}
1.单列集合框架结构:
2.Collection接口常用方法:(记住)
添加:
add(E obj)
addAll(Collection other)
删除:
remove(E obj)
removeAll(Collection other)
clear()
查询:
contains(E e)
containsAll(Collection all)
isEmpty()
获取有效元素的个数:
int size()
保留交集
retainAll(Collevtion other)
遍历相关:
Object[] toArray()
Iterator iterator()
3.List接口
3.1存储的数据特点:有序的,可重复的
3.2常用方法:(记住)
比Collection多了一些方法,和index相关
添加:
add(int index,E e)
addAll(int index,Collection other)
删除:
remove(int index)
查询
E get(int index)
int indexOf(E e)
int lastIndexOf(E e)
List subList(int start,int end)
修改:
set(int index,Object value)
和遍历相关:
ListIterator listIterator()
Vector:旧版的动态数组
ArrayList:新版的动态数组
LinkedList:双向链表,实现了List接口,又实现了Queue,Deque接口,既可以作为双端队列
,队列等来使用。
Stack:栈结构,继承Vector。
不管是Stack表现的栈结构,还是LinkedList表现的队列等结构,都是通过相应的方法来体现的
例如:push,pop,peek,offer...
3.4存储的元素的要求:
没有什么特殊要求
4 Set接口
4.1 存储结构的数据特点
无序的,不可重复的
4.2元素添加方式:
还是add()
4.3常用方法:继承Collection的方法
4.4常用实现类:
HashSet:完全无序的,不可重复依赖于元素的hashCode和equals方法
TreeSet:按照元素的大小顺序,依赖于元素的自然排序(compareTo()),或者指定定制比较器
(Comparator接口compare())
LinkedHashSet:维护添加顺序不可重复依赖于元素的hashCode和equals方法
4.5存储的元素要求:
HashSet和LinkedHashSet:建议重新hashCode和equals方法
TreeSet:建议元素实现java.lang.Comparable接口,或者指定java.lang.Comparable接口的对象
4.6TreeSet的使用:
1 使用说明
2 常用的排序方式:
java定义的一个迭代器接口,用于遍历Collection.(List或者Set)
(1)先获取Iterator的对象
Collection系列的集合对象.iterator()
(2)调用iterator的方法
bollean hasNext()
E next(
如果遍历时要根据条件删除,也可以调用Iterator的对象.remove()
增强for循环
for(元素类型 元素名:数组/集合名){
只能用于遍历查看
}
双列集合框架:Map
1.存储数据特点:存储健值对象
2.常用方法
添加: put(K key ,V value)
删除: remove(K key)
clear()
查询:
containsKey(K key)
containsValue(V value)
V get(K key)
isEmpty()
获取有效映射关系的对数:int size()
遍历相关的方法:
Set keySet()
Collection values()
Set entrySet()
3.常用实现类:
Hashtable:旧版散列表,哈希表
HashMap:新版散列表,哈希表
LinkeHashMap:比HashMap多维护了添加的顺序,是HashMap的子类
Properties:是Hashtable的子类,key,value的类型都是String
TreeMap:按照key的大小顺序排列查询
结合图像记忆