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

08 集合框架1

什么是数据结构?

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

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

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

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

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

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

集合框架的作用是什么?

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

说说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()方法去获取下一个元素,并且将指针向后移动一个

相关文章:

08 集合框架1

什么是数据结构? 存储数据,组织数据的方法,就是对数据做增删改查的操作 常见的数据结构有哪些?各自的优缺点是什么? 数组:擅长修改 查找操作,不擅长增加 删除操作 链表:有单项链表和双向链表,擅长增加和删除操作,不擅长修改和查找的操作 队列:擅长操作头和尾,先进先出,…...

内卷把同事逼成了“扫地僧”,把Git上所有面试题整理成足足24W字测试八股文

互联网大厂更多的是看重学历还是技术&#xff1f; 毫无疑问&#xff0c;是技术&#xff0c;技术水平相近的情况下&#xff0c;肯定学历高/好的会优先一点&#xff0c;这点大家肯定都理解。 说实话&#xff0c;学弟学妹们找工作难&#xff0c;作为面试官招人也难呀&#xff01…...

10-jQuery-遍历children、parent、for、each、for...of等

1、for 循环&#xff1a;可以用来遍历数组或类数组对象&#xff0c;但不能用来遍历普通对象。 <ul><li>John</li><li>Doe</li><li>Jane</li><li>Doe</li> </ul><script>var lis $(li);for (var i 0; i &…...

联想集团财报:收入持续下滑,联想集团财务前景已恶化

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 联想集团2023财年第三季度财务业绩回顾 联想集团&#xff08;00992&#xff09;于2023年2月16日盘后公布了该公司2023财年第三季度的财报。 财报显示&#xff0c;联想集团的收入已经从2022财年第三季度的201.27亿美元下降到…...

GPT4限制被破解!ChatGPT实现超长文本处理的新方法

目录 前言 使用chat-gpt过程中有哪些痛点 1.无法理解人类情感和主观性 2.上下文丢失 3.约定被打断 那如何去解决这个痛点 Transformer&#xff08;RMT&#xff09;怎么去实现的 1.Transformer 模型 2.RMT模型 3.计算推理速率 4.渐进学习能力 总结 写到最后 大家好…...

奋斗,然后成功:我的架构狮之梦

与代码结缘 2018年&#xff0c;当时听说了一个很厉害的人——吴瀚清老师&#xff0c;也就是大家所熟知的“道哥”。关于他的事情有很多传说&#xff0c;于是我也很快成为了他的小迷弟&#xff0c;把吴瀚清老师当成了自己的偶像。 也是那一年&#xff0c;我买了人生中第一本关…...

自定义属性,v-bind computed的使用

0.0 自定义组件的使用 【掌握】 先自定义自己的组件 引入组件 import 组件名 from 路径/文件名 注册组件 <script> export default {components:{ // 组件注册组件名:组件名&#xff0c;组件名1},data(){ // 数据return {}},methods:{ // 方法} ​ } ​ </script&…...

解决城市内涝的措施有哪些?需要用到哪些监测设备?

随着城市化的不断推进&#xff0c;城市内涝问题日益凸显。极端天气事件如暴雨、台风等对城市基础设施和居民生活造成了严重影响。那么&#xff0c;解决城市内涝的措施有哪些?需要用到哪些监测设备?针对上述问题&#xff0c;本文会为大家一一进行讲解。 解决城市内涝的措施有哪…...

Spark大数据处理讲课笔记----Spark任务调度

零、本节学习目标 理解DAG概念了解Stage划分了解RDD在Spark中的运行流程 一、有向无环图 &#xff08;一&#xff09;DAG概念 DAG&#xff08;Directed Acyclic Graph&#xff09;叫做有向无环图&#xff0c;Spark中的RDD通过一系列的转换算子操作和行动算子操作形成了一个…...

【22-23春】AI作业10-经典卷积网络

1.LeNet & MNIST LeNet是一种神经网络的模型&#xff0c;用于图像识别和分类。他包含 3 个卷积层&#xff0c;2 个池化层&#xff0c;1 个全连接层。其中所有卷积层的所有卷积核都为 5x5&#xff0c;步长 strid1&#xff0c;池化方法都为全局 pooling&#xff0c;激活函数…...

第13章_约束

第13章_约束 1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性&#xff08;Data Integrity&#xff09;是指数据的精确性&#xff08;Accuracy&#xff09;和可靠性&#xff08;Reliability&#xff09;。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的…...

GPC规范--安全域基础概念

概述&#xff1a; 分为三种主流类型&#xff1a; 1、发卡方安全域(Issuer Security Domain&#xff0c; ISD)&#xff0c;卡片上首要的、强制性存在的安全域&#xff0c;是卡片管理者(通常是发卡方)在卡片内的代表&#xff1b; 2、补充安全域(Supplementary Security Domain&am…...

C++初阶--C++入门之基础学习

0.前言 C是一门非常好的编程语言&#xff0c;但可能在学习C的过程中会遇到很多困难。人们常说 “一个人走得很快&#xff0c;一群人会走的更远”&#xff0c; 所以就让我们一起攻坚克难&#xff0c;一起征服C吧&#xff01;从本章开始&#xff0c;我们将开始C的基础学习&#x…...

服务器虚拟化部署

服务器虚拟化部署 1、背景2、目的3、环境4、部署4.1、部署VMware ESXi4.1.1、准备工作4.1.2、部署ESXi4.1.3、配置ESXi4.1.4 、部署虚拟机 1、背景 项目上利旧9台服务器&#xff0c;项目需要使用15台服务器&#xff0c;外购已经没有项目硬件采购预算&#xff0c;只能从目前的…...

实验篇(7.2) 01. 实验环境介绍 远程访问 ❀ Fortinet网络安全专家 NSE4

【简介】学习NSE4&#xff0c;如果只看文章而不动手做实验&#xff0c;就象耍流氓。为了有效的巩固学习到的内容&#xff0c;建议经常动手做实验。实验不怕出错&#xff0c;身经百战后&#xff0c;再在生产环境部署和配置FortiGate防火墙&#xff0c;就会做到胸有成竹。 虚拟实…...

ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD

ThinkPHP6 模型层的模型属性&#xff0c;表映射关系&#xff0c;以及模型层的CRUD及如何在控制层中使用模型层 1. model 模型层的默认映射规则 模型&#xff0c;即mvc模式中的model层&#xff0c;model层用来对接数据库&#xff0c;操作数据库的增删改查。 在tp6中&#xff…...

CodeForces.1806A .平面移动.[简单][判断可达范围][找步数规律]

题目描述&#xff1a; 题目解读&#xff1a; 给定移动规则以及起始点&#xff0c;终点&#xff1b;分析终点是否可达&#xff0c;可达则输出最小步数。 解题思路&#xff1a; 首先要判定是否可达。画图可知&#xff0c;对于题目给定的移动规则&#xff0c;只能到达起始点(a,b…...

Linux系统编程学习 NO.4 ——基础指令学习、操作系统时间的概念、文件压缩包的概念

1.时间相关的概念以及指令 1.1.时间相关的指令 1.1.1.date指令 date可以指定时间显示的格式&#xff1a;date 指定格式 选项 %H&#xff1a;小时 %M&#xff1a;分钟 %S&#xff1a;秒数 %Y&#xff1a;年份 %m&#xff1a;月份 %d&#xff1a;日 %F:相当于%Y-%m-%d %X:相当…...

leecode 数据库:601. 体育馆的人流量

导入数据&#xff1a; Create table If Not Exists Stadium (id int, visit_date DATE NULL, people int); Truncate table Stadium; insert into Stadium (id, visit_date, people) values (1, 2017-01-01, 10); insert into Stadium (id, visit_date, people) values (2, 20…...

gym不渲染画面的解决方案(gym版本号0.26.2)

确认gym版本号 我安装了新版gym&#xff0c;版本号是0.26.2&#xff0c;不渲染画面的原因是&#xff0c;新版gym需要在初始化env时新增一个实参render_mode‘human’&#xff0c;并且不需要主动调用render方法&#xff0c;官方文档入门教程如下 import gym import numpy as n…...

深度学习篇---NVIDIA DeepStream

NVIDIA DeepStream 是一个功能强大的流媒体分析工具包&#xff0c;专为基于 AI 的多传感器处理、视频、音频和图像理解而设计。你可以把它想象成一个“视觉 AI 应用的乐高工厂”&#xff0c;它把视频解码、AI 推理、目标追踪这些复杂的“零件”&#xff0c;巧妙地组合成一条高效…...

NS模拟器自动化管理系统:简化游戏兼容性配置的解决方案

NS模拟器自动化管理系统&#xff1a;简化游戏兼容性配置的解决方案 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools NsEmuTools是一款专为Nintendo Switch模拟器用户设计的桌面端管理解决方…...

Kubernetes性能优化指南:提升集群运行效率

Kubernetes性能优化指南&#xff1a;提升集群运行效率 引言 在生产环境中&#xff0c;Kubernetes集群的性能优化是一个持续的过程。通过优化&#xff0c;可以提高资源利用率、减少响应时间、提升用户体验。 今天就来分享一下Kubernetes性能优化的经验和方法。 资源优化 Pod资源…...

在 Taotoken 控制台中如何进行 API Key 的创建权限管理与操作审计

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在 Taotoken 控制台中如何进行 API Key 的创建权限管理与操作审计 对于需要将大模型能力集成到多个应用或分配给不同团队成员的开发…...

人机协同闭环:AI 时代邮件安全 “人在回路” 防御体系研究

摘要 2026 年&#xff0c;生成式 AI 全面渗透网络钓鱼攻击链&#xff0c;攻击从批量群发转向精准定制、从静态模板转向动态逃逸&#xff0c;传统纯技术防护出现显著盲区。数据显示&#xff0c;AI 自动化鱼叉式钓鱼点击率达 54%&#xff0c;攻击从投放至全面入侵的窗口压缩至秒级…...

【限时解锁】Gemini深度研究模式私有化部署方案:仅3家头部科研机构掌握的本地化推理链配置

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Gemini深度研究模式的核心原理与能力边界 Gemini深度研究模式并非简单增强上下文长度的推理机制&#xff0c;而是一种面向复杂知识密集型任务的分层式认知架构。其核心原理在于动态构建“问题-证据-推理”三元…...

校准机器学习与SHAP分析:构建可信专利价值评估模型

1. 项目概述&#xff1a;从“黑盒”预测到“透明”评估的跨越在技术管理和投资决策领域&#xff0c;判断一项专利或技术的长期价值&#xff0c;一直是个既关键又棘手的难题。传统的专家评估方法虽然能结合行业洞见&#xff0c;但往往耗时费力、主观性强&#xff0c;且难以应对海…...

TV Bro电视浏览器:让智能电视变身全能上网终端的终极指南

TV Bro电视浏览器&#xff1a;让智能电视变身全能上网终端的终极指南 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 你是否曾经尝试在智能电视上浏览网页&#xff0c;却…...

Poppins字体:终极多语言开源字体解决方案,9种字重+天城文支持

Poppins字体&#xff1a;终极多语言开源字体解决方案&#xff0c;9种字重天城文支持 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 还在为多语言项目寻找完美的字体解决方案吗…...

基于树模型混合分类器的物联网入侵检测系统设计与实战

1. 项目概述&#xff1a;为什么要在物联网安全中引入树模型混合分类器&#xff1f;在物联网安全这个行当里干了十几年&#xff0c;我最大的感受就是“道高一尺&#xff0c;魔高一丈”。随着智能家居、工业物联网、车联网的爆炸式增长&#xff0c;联网设备的数量级早已不是当年可…...