爪哇国新游记之三----自创动态数组类
package array; public class DArray{ private int[] arr; private int currCount; private static final int InitSize=2; public DArray(){ arr=new int[InitSize]; } public void add(int number){ if(currCount>=arr.length){ // 实际数量已经超过数组长度,需要扩容 int[] arrNew=new int[arr.length*2];// 扩容 // 填充原值 for(int j=0;j<arr.length;j++){ arrNew[j]=arr[j]; } // 原有数组空间放弃,arr指向新创建的数组空间(创建在堆中) arr=arrNew; arr[currCount]=number; currCount++; }else{ // 无需扩容 arr[currCount]=number; currCount++; } } public void display(){ System.out.print("动态数组合法元素为:"); for(int i=0;i<currCount;i++){ System.out.print(arr[i]+","); } System.out.println(); } public void displayAll(){ System.out.print("动态数组所有元素为:"); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+","); } System.out.println(); } public int[] getArray(){ int[] arrOutput=new int[currCount]; for(int i=0;i<currCount;i++){ arrOutput[i]=arr[i]; } return arrOutput; } public int get(int index){ return arr[index]; } public static void main(String[] args){ DArray d=new DArray(); d.add(1); d.add(2); d.add(3); d.add(4); d.add(5); d.add(6); d.add(7); d.add(8); d.add(9); d.display(); d.displayAll(); int[] arrOutput=d.getArray(); System.out.print("arrOutput:"); for(int i=0;i<arrOutput.length;i++){ System.out.print(arrOutput[i]+","); } System.out.println(); System.out.println("第8号元素为"+d.get(8)); } }
这个类,既让学生对基础数据结构有一定了解,又为后面的学习铺开了道路。
分类:
Java.数据结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)