当前位置: 首页 > 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…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...

华为云Flexus+DeepSeek征文 | MaaS平台避坑指南:DeepSeek商用服务开通与成本控制

作者简介 我是摘星&#xff0c;一名专注于云计算和AI技术的开发者。本次通过华为云MaaS平台体验DeepSeek系列模型&#xff0c;将实际使用经验分享给大家&#xff0c;希望能帮助开发者快速掌握华为云AI服务的核心能力。 目录 作者简介 前言 一、技术架构概览 1.1 整体架构设…...