类集框架主要作用是动态的保存多个对象数据,传统的对象数组存在大小固定的缺陷
先放一张Java 类集框架层级图
Collection单对象保存父接口
主要方法
add()增加数据
clear()清空数据
contains()是否包含某个数据
isEmpty()是否为空
remove()移除某个数据
size()获取集合中的数据个数
toArray()转换为对象数组
iterator()实例化父接口Iterator
对象数组使用remove()和contains()时要覆写对象中的equals()方法
Collection接口无法区分保存的数据是否重复,主要使用它的两个子接口List和Set
List接口
List子接口对Collection父接口的功能进行了扩充,它的最大特点是数据可重复
get()获取索引对应的数据
set()修改索引对应的数据
listIterator()实例化ListIterator接口的对象
List接口最常用子类ArrayList
特点:采用异步处理,查询速度快,增删数据慢
List接口旧的子类Vector
特点:采用同步处理,速度慢
Vector的子类Stack
栈,采用先进后出的数据结构
常用方法:
push()入栈,存放数据
pop()出栈,取出栈顶数据
List接口子类LinkedList
特点:增删数据快,查找数据慢
Set接口
简单的继承了Collection接口,数据不重复
Set接口子类HashSet
特点:无序,查找速度快
Set接口子类TreeSet
特点:有序
排序是通过对象所对应的类实现比较强接口Comparable实现的
重复元素的清除依靠类覆写hashCode()和equals()方法实现
集合的输出4种
迭代输出Iterator
集合对象获取Iterator接口的实例
Iterator主要的方法:
hasNext()是否还有内容
next()取出当前内容
双向迭代输出ListIterator
支持从后向前的输出,还支持了数据的增删改,实际开发中很少用到
Foreach输出
利用Foreach直接输出集合中的数据
枚举输出Enumeration
早期配合Vector进行数据输出的方法
偶对象保存(键值对保存)Map接口
Map用于保存一对关联数据key=value
常用方法:
put(key,value)添加数据
get(key)取出key对应的value
entrySet()转为Set集合
keySet()只将key转为Set集合
key对象的类需要覆写contains()和equals()
Map接口子类HashMap
特点:key不重复,无序,异步操作
Map接口子类HashTable
早期的一个子类
特点:key,value不为空,同步操作
HashTable的子类Properties
特点:key,value均为String型
常用方法:
setProperty(key,value)存放数据
getProperty(key,default)获取key对应的value,可以设置key不存在时默认值
store(OutputStream,comment)通过输出流保存数据,可以设置备注
load(InputStream)通过输入流读取数据
Map的输出
Map.Entry接口实现
getKey()
getValue()
setValue()
先将Map.entrySet()转Set,再Set.iterator()获取Iterator对象,然后从Iterator中获取Map.Entry,再从Map.Entry获取键,值数据
Collections集合的工具类
为了方便性而增加的,可以操作List,Set,Map
常用方法
addAll()增加数据
binarySearch()二分法查找数据(二分法要先进行数据排序)
copy()集合的复制
reverse()集合反转
sort()集合排序
Stream数据流
将集合转为数据流进行操作与输出
常用方法:
count()获取数据个数
distinct()消除重复数据
filter()数据过滤
skip()跳过数据个数
limit()设置取出数据的个数
allMatch()数据匹配
anyMatch()数据匹配,匹配任一一个
MapReduce大数据操作的开发模型(不太懂,待写)
Stream中也有相关方法
map()数据处理,reduce()数据分析