08 集合框架1

news/2024/12/4 18:09:19/

什么是数据结构?

存储数据,组织数据的方法,就是对数据做增删改查的操作

常见的数据结构有哪些?各自的优缺点是什么?

数组:擅长修改 查找操作,不擅长增加 删除操作

链表:有单项链表和双向链表,擅长增加和删除操作,不擅长修改和查找的操作

队列:擅长操作头和尾,先进先出,不能操作中间数据

栈:先进后出,只能从外面一步一步执行

集合框架的作用是什么?

作为一个容器,存储多个数据,主要存对象,可以存任何类型

说说Java中的集合继承体系

Collection继承:List,Set,和Map没有直接的继承关系

List继承:ArrayList,LinkedList

Set继承:HashSet,TreeSet

Map继承HashMap,HashSet

List集合的特点是什么?有哪些常用的List集合?

有序,可以重复

常用的List集合:ArrayList,LinkedList

//创建List对象
List list=new ArrayList();
//添加
list.add("A") 
list.add("B");
list.add("C");
list.add("D");
sout.list;
//删除
list.remove("A");//删除指定的元素
list.remove(2);//删除指定位置的元素
List list2=new ArrayList();
//添加
list2.add("1") 
list2.add("2");
list2.add("3");
list2.add("4");
list.addAll(list2);//添加集合list.remove("A");//删除指定元素
list.remove(2);//删除指定位置的元素
list.removeAll(list2);//删除集合
list.clear();//全部删除list.set(3,"b")//修改list.get(0);//查询

说说ArrayList集合的底层原理

底层就是一个Objiect类,是一个数组算法的列表

操作数组的增删改查

什么是泛型?为什么需要泛型?

当某个类或者接口数据类型不确定时,用一个标识符来表示位置数据类型


//定义泛型类型
public class PlayList<T> {//定义一个数组来存球衣号码
//修改value的类型为Tprivate T[] players;//将类型设置成Objiect
  PlayList<Integer> list=new PlayList<Integer>();PlayList list2=new PlayList(11);list.add(33);list.add(22);

集合中为什么需要使用到泛型?如何使用?

为了规范集合中的数据是相同类型的,省去强制转换的操作

使用方法:

//在类上面声明使用符号,表示未知类型
public calss ponit<T>{
private T x;
private T y;
}
//String作为泛型,p传进取去的值只能是String类型的
point<String> p=new point<String>();
point<String> p=new point<>();

集合元素的遍历

 List<String> list = new ArrayList<>();//创建集合list.add("A");list.add("B");list.add("C");list.add("D");//forfor (int i = 0; i < list.size(); i++) {System.out.print(list.get(i) + "\t");}//for-each,底层是迭代器for (Object l : list) {System.out.print(l + "\t");}//迭代器Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {//使用hasNext判断是否还有下一个元素System.out.println(iterator.next());//获取指针下一个元素,获取后指针向后面移动一位}

迭代器的底层原理:

作用:当删除集合中的某一个元素时,for-each(底层是迭代器)会出现报错的情况,所以删除元素的时候使用迭代器(Iterator),使用迭代器的时候需要使用泛型,否则取出来的类型是Objiect

1.指针默认指在集合中的第一个元素之前

2.先判断指针后面的位置是否有元素hasNext()

3.如果有,就使用next()方法去获取下一个元素,并且将指针向后移动一个


http://www.ppmy.cn/news/75269.html

相关文章

LeetCode94. 二叉树的中序遍历(递归与非递归)

写在前面&#xff1a; 题目链接&#xff1a;添加链接描述 编程语言&#xff1a;c 题目难度&#xff1a;简单 一、题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a;…

使用Amazon EC2实例部署三个项目

在部署这三个项目时&#xff0c;以下是一种可能的思路&#xff1a; 1. **配置服务器环境&#xff1a;**确保你的服务器已经安装了适当的操作系统&#xff08;例如Linux&#xff09;和所需的软件&#xff08;如Python、Node.js等&#xff09;。 2. **设置域名和端口&#xff1a;…

【图论】想越狱的小衫

题目描述 这次小杉来到了经典美剧《越狱》的场景里……他被抓起来了&#xff08;-.-干嘛幻想这么郁闷的场景……&#xff09;。 小杉身为新一代的Scofield&#xff0c;在挖了半个月之后终于挖通牢房里的地道。 在地道里&#xff0c;无数的管道路线困惑了他。 小杉看了看自己…

游戏洞察丨自来水还是井水,后流量时代的私域挑战

流量生意本质上是买卖用户浏览时间的生意&#xff0c;如果用户增长到顶&#xff0c;那就意味着供给到顶。对比 2021 年&#xff0c;2022 年的游戏出海在谷歌和 Facebook 上投入的广告成本几乎翻了一倍。新晋“渠道王者”TikTok 逐渐走进大家的视野。该现象背后的原因在于&#…

MySQL数据库最常见的6种故障的排除方法

MySQL数据库最常见的6中故障的排除方法 1.MySQL无法启动 2.MySQL连接不上 3.MySQL打开文件失败 4.MySQL挂起&#xff08;hung&#xff09; 5.MySQL崩溃&#xff08;crash&#xff09; 6.忘记用户密码 1.MySQL无法启动 1.无法访问系统资源 2.参数设置错误 无法访问系统…

ffmpeg命令行工具源码之结构体分析1-命令行参数(未完结,持续更新)

前言 ffmpeg作为多媒体文件转换工具&#xff0c;至少需要有一个要转换的输入文件信息&#xff08;不仅仅是普通文件&#xff0c;还可以是摄像头设备&#xff0c;网络流等&#xff09;&#xff0c;和通常至少需要一个输出格式的文件&#xff08;输出文件不仅仅指普通的文件&…

【SQL】MySQL的数据类型

MySQL的数据类型 MySQL是一种广泛使用的关系型数据库管理系统&#xff0c;它支持各种数据类型&#xff0c;包括数字、字符串、日期和时间等。在MySQL中&#xff0c;数据类型是用来定义表中列的类型&#xff0c;它决定了表中的数据如何被存储和操作。 数字类型 MySQL支持多种…

完犊子!原单位的离职证明丢了,下周要入职了,用AI做一个行不行?

弄丢了离职证明怎么办&#xff1f; 一位网友哀叹&#xff1a; 完犊子&#xff01;原单位的离职证明丢了&#xff0c;下周要入职了&#xff0c;现在怎么办&#xff1f;用AI做一个行不行&#xff1f; 有相同经历的网友安慰他&#xff0c;离职证明没了没事&#xff0c;新公司会要求…