`

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#中,一个简单的...

    谭浩强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 简单的算法...

    算法设计与分析基础课后习题答案(中文版).doc

    在习题 1.9 中,我们需要讨论如何改进算法来求数组中大小相差最小的两个元素的差。我们可以使用以下算法: 算法 MinDistance[0..n-1]&gt; // 输入:数组 A[0..n-1] // 输出:the smallest distance d between two of ...

Global site tag (gtag.js) - Google Analytics