Java动态数组_支持泛型
上一篇文章是动态数组, 但是只能用在int, 这次修复了部分上次运行潜在的问题, 并更新为支持不同类型的内容进入数组实现支持泛型的Java动态数组普通数组虽然优点在于便于通过位置进行取值, 但存在一个明显的缺点, 就是长度一旦创建就无法更改. 一旦数组满了, 就只有再创建一个数组. 而动态数组能够较好的应对这种情况.关于使用泛型就是为了让数组的内容不仅仅限于int, 还可以是double, string等任何类型的数据.arrInteger list new arr(); arrString list2 new arr();动态数组先定义一个泛型类public class arrE要有初始数组public Object[] arrnew Object[0];下面就是需要用到的方法添加数据public void add(E e) { //根据原数组大小, 进行扩容 Object[] nArr new Object[arr.length1]; nArr[arr.length] e; //拷贝原数组数据 for (int i 0; iarr.length;i){ nArr[i]arr[i]; } //更新对象头 arr nArr; }插入数据public void inset(int index, E e){ if(index0 index arr.length) { Object[] nArr new Object[arr.length 1]; nArr[index] e; for (int i 0; i index; i) { nArr[i] arr[i]; } for (int j index; j arr.length; j) { nArr[j1] arr[j]; } arr nArr; }else { System.out.println(WRONG); } }移除指定位置数据, 并且返回被删除的数据public boolean remove(int index){ if(index0 index arr.length) { Object remove arr[index]; Object[] nArr new Object[arr.length - 1]; for (int i 0; i index; i){ nArr[i] arr[i]; } for (int j index1; jarr.length;j){ nArr[j-1] arr[j]; } arr nArr; System.out.println(remove: remove); }else { System.out.println(WRONG); } return false; }删除指定数据public boolean removes(E e) { for (int i 0; iarr.length;i){ if(arr[i].equals(e)){ remove(i); return true; } } return false; }删除所有相同数据这里没有用i的样子是因为后面再运行的时候发现如果正着写, 要是碰到那个位置刚好是被要单独删掉的内容占据了它就直接停下来了不会再排查是否还有一样的数据要删除public boolean removeAll(E e){ boolean flag false; for (int i arr.length-1; i0;i--){ if (arr[i].equals(e)){ remove(i); flag true; } } return flag; }获取指定位置数据public E get(int index){ return (E) arr[index]; }长度public int size(){ return arr.length; }往数组里加点东西, 试着运行一下public static void main(String[]args){ arr Integer list new arr(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(3); list.remove(1); list.inset(1,20); list.removes(20); list.removeAll(3); arrString list2new arr(); list2.add(hello); list2.add(world); list2.add(goodbye); list2.add(world); list2.remove(2); list2.inset(1,c u again); list2.removes(hello); list2.removeAll(world); //遍历数据 for (int i0; ilist.size();i){ Object data list.get(i); System.out.println(datadata); } for (int j0; jlist2.size();j){ Object data2list2.get(j); System.out.println(data2data2); } }下面就是运行的结果算是成功运行上了:D

相关新闻

2005-2022年地级市地方政府税收竞争数据

2005-2022年地级市地方政府税收竞争数据

数据简介 地方政府税收竞争是指地方政府间以增强本地区的经济实力、提高本地区相关福利为目的,通过税收手段进行的与其他地区争夺经济资源及税收资源的活动。 地方政府税收竞争主要集中于第二、第三产业,较少涉及零税负或低税负的第一产业。因此,本数据…

2026/5/17 9:21:53 阅读更多 →
2026年AI大模型排名全景分析:从权威榜单看行业格局

2026年AI大模型排名全景分析:从权威榜单看行业格局

2026年AI大模型排名全景分析:从权威榜单看行业格局 说实话,每隔几个月看一次大模型排名,感觉就像在看一场没有终点的马拉松。 今天这篇文章,我把全网几个权威机构的榜单数据扒了一遍,给你聊聊当前 AI 大模型的真实格局。 一、权威机构榜单概览 目前业内认可度最高的几个…

2026/5/17 5:48:33 阅读更多 →
Python 入门必学:基础数据类型 + 变量核心知识,一篇吃透

Python 入门必学:基础数据类型 + 变量核心知识,一篇吃透

对于 Python 新手来说,入门的第一道关,就是掌握基本数据类型和变量的使用,这是搭建所有 Python 代码的基础,就像盖房子要先打地基一样。今天这篇文章,从最基础的 print 函数执行原理,到五大核心数据类型、编…

2026/5/17 5:27:38 阅读更多 →

最新新闻

Monorepo 工程化实战:Turborepo + pnpm 的全栈项目组织与构建缓存

Monorepo 工程化实战:Turborepo + pnpm 的全栈项目组织与构建缓存

Monorepo 工程化实战:Turborepo pnpm 的全栈项目组织与构建缓存 一、多仓库协作的效率黑洞:当你维护 5 个 npm 包时,改一行代码要跑几个 CI 全栈项目的常见组织方式是:前端一个仓库,后端一个仓库,共享类型…

2026/7/7 0:25:32 阅读更多 →
MediaCrawler:5分钟上手,一站式采集小红书、抖音、B站等主流平台数据

MediaCrawler:5分钟上手,一站式采集小红书、抖音、B站等主流平台数据

MediaCrawler:5分钟上手,一站式采集小红书、抖音、B站等主流平台数据 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new 你是否在为新媒体数据分析而烦恼?想要批量获取小红书、…

2026/7/7 0:23:31 阅读更多 →
免疫平衡的“黄金四象限“:IFN-γ/IL-17/IL-4/TGF-β1 Panel构建Th检测体系

免疫平衡的“黄金四象限“:IFN-γ/IL-17/IL-4/TGF-β1 Panel构建Th检测体系

【行业观察 | 生物标志物高通量检测新进展】Adaptive immunity is a balancing act. 这句话在教科书里躺了几十年,但直到今天,大多数实验室仍然在用"单点测量"的方式去逼近这个动态平衡。测了IFN-γ,不知道IL-4的走向;定…

2026/7/7 0:21:30 阅读更多 →
YOLOv8船舶检测实战:从算法原理到海事场景部署

YOLOv8船舶检测实战:从算法原理到海事场景部署

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在船舶运输、港口管理和海事安全领域,如何高效、准确地识别和分类航道中的各类船舶,一直是行业智能化升级的核…

2026/7/7 0:21:30 阅读更多 →
132.带限位报警与急停联锁的智能分拣流水线 PLC 设计

132.带限位报警与急停联锁的智能分拣流水线 PLC 设计

摘要 本文围绕可编程逻辑控制器(PLC)的工程化应用,从底层扫描机制出发,系统讲解PLC的核心原理、梯形图与结构化文本的编程范式,并给出一个完整的物料分拣控制系统实战案例。文章包含可直接运行的CODESYS代码(IEC 61131-3标准),详细说明运行逻辑与调试方法,同时梳理初…

2026/7/7 0:15:25 阅读更多 →
移动应用安全测试终极指南:如何用MobSF框架快速发现应用漏洞

移动应用安全测试终极指南:如何用MobSF框架快速发现应用漏洞

移动应用安全测试终极指南:如何用MobSF框架快速发现应用漏洞 【免费下载链接】Mobile-Security-Framework-MobSF Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and sec…

2026/7/7 0:15:25 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻