栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

容器/集合的知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

容器/集合的知识

集合
存储多个数据
存储任意引用类型数据
集合的长度可变,可以根据需求动态的增删数据,长度随之改变
数组
存储多个数据
一段连续的内存空间
特点
引用数据类型
定长,长度一旦确定不可改变
存储数据的类型相同
有序,有索引
简单封装容器类型(ArrayList)
MyContainer 只能存储字符串数据 String[] elementData;
容器中的接口层次结构
Collection
单个值的集合
Set 无序,不可重复,去重
无序
存放的顺序与内部真实存储的顺序不一致
去重
集合不包含元素对e1和e2 ,使得e1.equals(e2)和最多一个null元素
返回包含任意数量元素的不可修改集
遍历方式
foreach
iterator迭代器
List 有序可重复,有索引
有序集合(也称为序列 )
该接口的用户可以精确控制列表中每个元素的插入位置
新增
一些列根据索引操作的方法
遍历方式
for普通for循环
for(int i=0;i System.out.println(list.get(i));
}
foreach 增强for循环
iterator迭代器
Collection 集合层次结构中的根接口
遍历方法
foreach
for(Object obj:collection){
System.out.println(obj);
}
iterator迭代器
1)获取迭代器实例,用来遍历指定的集合
Iterator iterator() 返回此集合中元素的迭代器。
Iterator it = collection.iterator();
2)判断是否存在下一个数据
while(it.hasNext()){
3)获取下一个数据
System.out.println(it.next());
}
TreeSet
底层结构
红黑树
底层是由TreeMap维护的
特点
查询效率较高,自动把数据做升序排序
遍历方式
foreach
iterator迭代器
TreeSet需要存储相同类型的数据,因为会默认存在比较排序
TreeSet存储javabean类型的数据
去重与排序
都是根据比较规则实现的,与equals没有关系
比较规则
内部比较器|内部比较规则|自然排序
比较规则定义在javabean类型的内部
javabean类型实现Comparable接口,重写compareTo(T o)方法,在方法中定义比较规则
外部比较器|外部比较规则|定制排序
比较规则定义在javabean类型的外部
定义一个实现类,实现Comparator接口,重写int compare(T o1, T o2),在方法中定义比较规则
调用compare方法做两个数据的比较
compare(t1,t2)
返回值:
=0 t1==t2
<0 t10 t1>t2
匿名内部类
简化没有类自己作用的实现类
Lambda
简化匿名内部类对象,要求必须为函数式接口才能简化
lambda表达式作为实参传递 -> 可以把行为作为参数传递
Map
键值对的集合(KEY-VALUE)
泛型
作用
参数化类型
数据类型作为参数传递
只能配置引用数据类型
定义泛型
泛型的行为发生在编译期间,运行期间发型配置的所有内容无效,泛型擦除
要求先定义泛型,才能使用泛型
泛型类
类型的后面定义泛型,在使用类型的时候可以通过泛型传递具体的类型,类中可以进行使用
泛型方法
优点
代码简单简洁
增强程序健壮性,避免类型转换异常的出现
增强稳定性与可读性
ArrayList
有序,可重复的
实现所有可选列表操作,并允许所有元素,包括null
底层结构
数组
特点
根据索引查询遍历效率较高,增删效率低
应用场景
适合应用在大量做查询,少量做增删的位置
扩容问题
初始容量
默认初始容量为10
扩容机制
每次扩容原容量的1.5倍
遍历
普通for
增强for
iterator迭代器
listIterator迭代器
Vector
底层结构
数组
特点
根据索引查询遍历效率较高,增删效率低
区别
Vector是同步的,线程安全
ArrayList不同步,线程不安全,相对效率较高
Vector每次扩容原容量的2倍
ArrayList每次扩容原容量的1.5倍,相对ArrayList更有利于节省内存
总结
如果不需要线程安全实现,建议使用ArrayList代替Vector
linkedList
实现所有可选列表操作,并允许所有元素(包括null )
底层结构
双向链表
特点
查询效率低,增删效率高
应用场景
单个数据值的集合中,允许数据有序,且可重复,在大量做增删,少量做查询的时候时候适合使用链表
存储javabean类型数据时候,要求javabean类型重写equals方法,否则使用一些判断比较的方法时候回默认调用equals方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778580.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号