`

1.3 对1.2数组的改进

J# 
阅读更多
这次我对1.2章节中的数组进行了改进,在测试中我发现了一个问题,当new出数组类对象后,接着对它进行了插入值操作,然后只是显示了一下数组中的元数,再对它进行了插值,就出现数组越界异常...
改进后的代码如下:
package utillity.array;

public class AdvancedArray {
	private long[] arr;
	private int lenth;
	private int nElem;
	public AdvancedArray(int max){
		arr = new long[max];
		this.setLenth(max); 
		this.nElem = 0;
	}
	private void setLenth(int lenth){
		this.lenth = lenth;
	}
	public int getLenth(){
		return this.lenth;
	}
	//插入
	public void insert(long value){
		if(this.nElem < this.getLenth()){
			arr[nElem] = value;
			nElem++;
		}
	}
	//查找
	public boolean find(long serchValue){
		boolean b = false;
		int i = 0; //记录循环次数
		for(i=0; i<this.nElem; i++){
			if(arr[i] == serchValue){
				b = true;
				System.out.println("arr["+i+"]="+arr[i]);
				return b;
			}
		}
		if(i == this.nElem){
			System.out.println("找不到"+serchValue);
		}
		return b;
	}
	//删除
	public void delete(long delValue){
		int i = 0;
		//查找位置
		for(i=0; i<this.nElem; i++){
			if(arr[i] == delValue){
				//找到了要删除的元数
				//将该元数的后面所有元数向前移动一个位置
				for(int j=i; j<this.nElem; j++){
					arr[j] =arr[j+1];
				}
				//这个别忘了,记录数组中元数个数的nElem要减1
				this.nElem--;
			}	
		}
		
	}
	//显示
	public void display(){
		for(int i=0; i<this.nElem; i++){
			System.out.println("arr["+i+"]="+arr[i]);
		}
	}
	
}


测试类如下:
package utillity.array;

public class TestAdvancedArray {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		AdvancedArray arr = new AdvancedArray(10);
		arr.insert(34);
		arr.insert(29);
		arr.insert(36);
		arr.insert(99);
		arr.insert(27);
		arr.insert(65);
		arr.insert(79);
		arr.insert(83);
		arr.insert(74);
		System.out.println("-----测  AdvancedArray 试-----");
		System.out.println("-----插         入       前-----");
		arr.display();
//		System.out.println("-----插         入       后------");
//		arr.insert(101);
		System.out.println("-----删                  除------");
		arr.delete(99);
		System.out.println("-----删         除       后-------");
		arr.display();
		System.out.println("-----查                  找-------");
		arr.find(27);

	}

}
分享到:
评论

相关推荐

    高精度计算器v1.3

    1.改进了迭代次数,精度一般可以达到 90多位(本人限制了数组的维数为100), 2.改进了反正切函数的算法。 自己编写了一个大数运算程序,建立了一个大数数据类型,可以类似于c++ int 一样定义数据,并封装了四则...

    prototype 1.3 源码解读

    版本 1.3 相对于之前的 1.2 版本有了不少改进与增强,包括但不限于: - 注释的完善。 - 对象空间占用问题的优化。 - XMLHttpRequest 的封装。 - 效果插件 Effect.js 的加入,支持与 Rico 和 Scriptaculous 等库的...

    高精度计算器v1.4

    1.改进了迭代次数,精度一般可以达到 90多位(本人限制了数组的维数为100), 2.改进了反正切函数的算法。 自己编写了一个大数运算程序,建立了一个大数数据类型,可以类似于c++ int 一样定义数据,并封装了四则...

    Mootools1.3 core、more API文档

    1.3版本是其一个重要的里程碑,引入了许多改进和新功能。下面将详细介绍MooTools 1.3 Core和More API中的关键知识点。 ### 1. **MooTools Core** #### 1.1 **类与对象** MooTools的核心特性之一是其强大的类系统。...

    霍纳算法matlab编程

    接下来的代码段看起来是在解决一个线性系统,可能是通过改进的欧拉方法或者龙格-库塔方法来解常微分方程(ODE)。这部分代码涉及到的变量`U`, `V`, `detU`, `detV`可能与解微分方程的雅可比矩阵的行列式有关。 ```...

    commons-codec所有版本(1.1-1.10).zip

    例如,1.2版本添加了对URL编码的改进,1.3增加了对ISO-8859-1的支持,1.4引入了线程安全的Base64编码器和解码器,而1.5开始支持Java 5的泛型。 6. **国际化与本地化**: - 随着版本的升级,Apache Commons Codec...

    坦克大战游戏的改进设计.doc

    《坦克大战游戏的改进设计》是对经典坦克游戏的深度挖掘与创新,旨在提供更丰富的游戏体验和更高的可玩性。本文档将详细阐述改进设计的各个阶段,包括项目的背景、需求分析、游戏设计以及详细设计。 1.1 项目背景 ...

    PL/0编译程序的研究与改进(编译原理三级项目)

    《PL/0编译程序的研究与改进》 PL/0是一种简化版的编程...通过这样的研究和改进,PL/0编译程序不仅能更全面地展示编译器的工作原理,还能提供一个更加丰富的编程环境,有助于学习者深化对编译技术的理解和实践能力。

    软件设计师重点考点

    1.10软件过程改进 142 专题八:知识产权和标准化知识 146 1 标准化的基本知识 146 1.1标准化的基本概念 146 1.2标准化原理: 147 1.3标准的分类 148 1.4标准的代号和编号 151 1.5国际标准和国外先进标准 154 1.6标准...

    C语言程序设计(谭浩强)第三版

     1.2什么是计算机语言  1.3C语言的发展及其特点  1.4最简单的C语言程序  1.4.1最简单的C语言程序举例  1.4.2C语言程序的结构  1.5运行C程序的步骤与方法  1.6程序设计的任务  习题 第2章:算法——程序的...

    newtonsoft 3.5 三个版本

    Newtonsoft.Json 1.3 版本相对于 1.2 版本可能进行了改进和增强,包括但不限于: 1. 错误处理和异常报告:提供更好的错误反馈机制,帮助开发者调试和修复问题。 2. 更多的 JSON 格式支持:可能增加了对 JSON 格式的...

    C#language1.2

    C#的设计融合了多种语言的优点,并加以改进,使得它成为.NET框架的核心语言之一。 ### 1.1 Hello World 程序 “Hello World”程序通常是学习任何新编程语言的第一步,用于熟悉基本的语法结构。在C#中,一个简单的...

    《常用排序算法的比较》PDF格式论文

    **1.2 排序算法** 直接插入排序的具体实现可以通过以下步骤进行: - 初始化时,将第一个元素视为已排序区域,其余元素视为未排序区域。 - 对于每一个未排序区域中的元素,从左至右逐一检查已排序区域中的元素。 - ...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    2.4.3 三种基本结构和改进的流程图 28 2.4.4 用N-S 流程图表示算法 29 2.4.5 用伪代码表示算法 30 2.4.6 用计算机语言表示算法 31 2.5 结构化程序设计方法 31 3 数据类型、运算符与表达式 3.1 C语言的数据类型 32 ...

    actionscript cook book 中文版

    5.8 数组复制:创建数组的副本,避免对原数组的直接修改。 5.9 存储多维数据:介绍二维及多维数组的创建和操作。 5.10 数组排序:使用sort()对数组进行升序或降序排序。 5.11 自定义排序:覆盖sortOn()实现自定义的...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    2.4.3 三种基本结构和改进的流程图 28 2.4.4 用N-S 流程图表示算法 29 2.4.5 用伪代码表示算法 30 2.4.6 用计算机语言表示算法 31 2.5 结构化程序设计方法 31 3 数据类型、运算符与表达式 3.1 C语言的数据类型 32 ...

    jQuery-API文档

    jQuery 1.3版本在1.2的基础上进行了优化和增强,主要改进包括: 1. **性能提升**:1.3版本对内部代码进行了优化,提高了jQuery的选择器和DOM操作性能。 2. ** live() 方法**:引入了`live()`方法,实现了事件代理...

    MATLAB.amtt.-.P.Acklam.-.2002

    例如,`bsxfun` 函数允许用户对两个不同大小的数组执行逐元素操作。 #### 3. 高效编程技巧 **3.1 利用内置函数** 尽可能使用 MATLAB 内置的高效函数,而不是手动编写循环。例如,使用 `sum` 函数代替手动循环累加...

    C程序设计 第四版 谭浩强 高清扫描版 带完整书签目录 加 学习辅导

    1.3 C语言的发展及其特点 1.4 最简单的C语言程序 1.4.1 最简单的C语言程序举例 1.4.2 C语言程序的结构 1.5 运行C程序的步骤与方法 1.6 程序设计的任务 习题 第2章 算法——程序的灵魂 2.1 什么是算法 2.2 简单的算法...

Global site tag (gtag.js) - Google Analytics