当前位置: 首页 > news >正文

4.7学习总结 java集合进阶

集合进阶

泛型

//没有泛型的时候,集合如何存储数据
//结论:
//如果我们没有给集合指定类型,默认认为所有的数据类型都是object类型
//此时可以往集合添加任意的数据类型。
//带来一个坏处:我们在获取数据的时候,无法使用他的特有行为。
//此时推出了泛型,可以在添加数据的时候就把类型进行统
//而且我们在获取数据的时候,也省的强转了,非常的方便,
//1.创建集合的对象
ArrayList<string>list = new ArrayList<>();
//2.添加数据
//list.add(123);
list.add("aaa");
//list.add(new student("zhangsan",123));
//3.遍历集合获取里面的每一个元素
Iterator<string>it = list.iterator();
while(it.hasNext()){
String str = it.next();
//多态的弊端是不能访问子类的特有功能
//obj.length();
//str.length();
System.out.println(str);

 

泛型可以在很多地方进行定义:

类后面定义:泛型类

方法上面定义:泛型方法

接口后面定义:泛型接口

泛型类:

泛型方法 

 此时,泛型里面写的是什么类型,那么只能传递什么类型的数据。
弊端:
利用泛型方法有一个小弊端,此时他可以接受任意的数据类型
Student
Ye Fu zi
希望:本方法虽然不确定类型,但是以后我希望只能传递YeFuzi
此时我们就可以使用泛型的通配符:
?也表示不确定的类型
他可以进行类型的限定
?extendsE:表示可以传递E或者E所有的子类类型
?super E:表示可以传递E或者E所有的父类类型

泛型接口

 二叉树的遍历:

前序遍历:从根结点开始,然后按照当前结点,左子结点,右子结点的顺序遍历

数中序遍历:从最左边的子节点开始,然后按照左子结点,当前结点,右子结点的顺序遍历

后序遍历:从最左边的子节点开始,然后按照左子结点,当前结点的顺序遍历

层序遍历:一层一层的去遍历

数据结构(平衡二叉树):

规则:任意节点左右子树高度差不超过1

Set系列集合


int index =( 数组长度-1)& 哈希值;

当数组中元素数量达到数组长度*加载因的时候,数组会扩容为原来的两倍

当链表长度大于8而且数组长度大于等于64时,当前链表会自动转成红黑树,提高查找效率。 

如果集合中储存的时自定义对象,必须要重写hashCode和equals方法

否则比较的是地址值,一般没有实际意义

LinkedHashSet

 

TreeSet

 

 

总结

相关文章:

  • 信息系统项目管理师-第十二章-项目质量管理
  • 搭建复现环境
  • 06.unity 游戏开发-unity2D工程的创建及使用方式和区别
  • 基础知识补充篇:认识区块链浏览器
  • 【C++算法】49.分治_归并_计算右侧小于当前元素的个数
  • 免费Deepseek-v3接口实现Browser-Use Web UI:浏览器自动化本地模拟抓取数据实录
  • 如何为多个条件构建 Bson 过滤器
  • 蓝桥杯python组备赛(记录个人模板)
  • 【实践总结】如何编写“多角色适配”的高质量技术文档?
  • HTTP 教程 : 从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】
  • DiffSynth-Studio-视频的风格转换 CUDA日志
  • OpenCV--图像边缘检测
  • 临床 不等于 医学-《分析模式》漫谈52
  • 企业落地AI难的隐形枷锁-正是数据问题
  • C 变量:深入解析与高效使用
  • 《基于 std::vector 的简单本地注册登录系统设计与实现》
  • 用claude3.7,不到1天写了一个工具小程序(11个工具6个游戏)
  • 在PowerBI中通过比较日期实现累加计算
  • Python基础——Pandas库
  • vue2和vue3的主要区别
  • 淮安网站建设/如何做一个自己的网站
  • 指纹锁在什么网站做宣传好/网推接单平台有哪些
  • 做网站一定要购买虚拟主机吗/国际新闻最新消息美国
  • php网站怎么做302/seo优化服务是什么意思
  • 哪些做调查问卷的网站/色盲测试图第六版
  • 江苏省住房城乡建设厅网站首页/网络广告营销经典案例