`

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 一样定义数据,并封装了四则...

    高精度计算器v1.4

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

    软件设计师重点考点

    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章:算法——程序的...

    谭浩强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 ...

    谭浩强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 ...

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

    谭浩强 入门c语言教程

    1.2 当代最优秀的程序设计语言 2 1.3 C语言版本 2 1.4 C语言的特点 3 1.5 面向对象的程序设计语言 3 1.6 C和C++ 3 1.7 简单的C程序介绍 4 1.8 输入和输出函数 5 1.9 C源程序的结构特点 6 1.10 书写程序时应...

    《C语言程序设计》谭浩强

    1.2 当代最优秀的程序设计语言 1.3 C语言版本 1.4 C语言的特点 1.5 面向对象的程序设计语言 1.6 C和C++ 1.7 简单的C程序介绍 1.8 输入和输出函数 1.9 C源程序的结构特点 1.10 书写程序时应遵循的规则 1.11 ...

    谭浩强版c语言程序设计

    1.2 当代最优秀的程序设计语言 1.3 C语言版本 1.4 C语言的特点 1.5 面向对象的程序设计语言 1.6 C和C++ 1.7 简单的C程序介绍 1.8 输入和输出函数 1.9 C源程序的结构特点 1.10 书写程序时应遵循的规则 1.11 ...

    谭浩强c语言word版

    1.2 当代最优秀的程序设计语言 1.3 C语言版本 1.4 C语言的特点 1.5 面向对象的程序设计语言 1.6 C和C++ 1.7 简单的C程序介绍 1.8 输入和输出函数 1.9 C源程序的结构特点 1.10 书写程序时应遵循的规则 1.11 ...

    谭浩强 C语言程序设计 教程全书 Word版

    1.2 当代最优秀的程序设计语言 2 1.3 C语言版本 2 1.4 C语言的特点 3 1.5 面向对象的程序设计语言 3 1.6 C和C++ 3 1.7 简单的C程序介绍 4 1.8 输入和输出函数 5 1.9 C源程序的结构特点 6 1.10 书写程序时应...

    谭浩强c语言程序设计

    1.2 当代最优秀的程序设计语言 1.3 C语言版本 1.4 C语言的特点 1.5 面向对象的程序设计语言 1.6 C和C++ 1.7 简单的C程序介绍 1.8 输入和输出函数 1.9 C源程序的结构特点 1.10 书写程序时应遵循的规则 1.11 ...

    现代C++程序设计

    1.2 什么是面向对象 1.2.1 C++程序并不一定是面向对象的 1.2.2 一个简单的面向对象程序示例 1.2.3 面向对象的软件更有优势 1.3 结构化设计与面向对象设计 1.3.1 ATM——结构化设计 1.3.2 采用面向对象方法的ATM——...

    c语言程序设计(第三版)

    1.2 当代最优秀的程序设计语言 2 1.3 C语言版本 2 1.4 C语言的特点 3 1.5 面向对象的程序设计语言 3 1.6 C和C++ 3 1.7 简单的C程序介绍 4 1.8 输入和输出函数 5 1.9 C源程序的结构特点 6 1.10 书写程序时应遵循的...

    【全新正版】现代C++程序设计(原书第2版)

    此外,各章后面都提供了大量练习,有助于加强读者对相关内容的理解。 本书图文并茂,通俗易懂,真正做到寓教于乐,是一本难得的C++面向对象设计入门教材。 -----------------------------------------------------...

    统计模拟及其R实现

    1.2 条件期望和条件方差 1.3 随机过程简介 1.4 Markov链 第2章 R介绍 2.1 R软件基本操作 2.2 R向量 2.3 矩阵与多维数组 2.4 因子 2.5 列表与数据框 2.6 输出输人 2.7 程序控制结构 2.8 R程序设计 2.9 图形 2.10 解...

    c语言(编写程序最佳参考资料)

    1.2 当代最优秀的程序设计语言... 2 1.3 C语言版本... 2 1.4 C语言的特点... 3 1.5 面向对象的程序设计语言... 3 1.6 C和C++... 3 1.7 简单的C程序介绍... 4 1.8 输入和输出函数... 5 1.9 C源程序的...

    算法第四版-PDF-网盘链接

     1.2 数据抽象 38  1.2.1 使用抽象数据类型 38  1.2.2 抽象数据类型举例 45  1.2.3 抽象数据类型的实现 52  1.2.4 更多抽象数据类型的实现 55  1.2.5 数据类型的设计 60  1.3 背包、队列和栈 ...

Global site tag (gtag.js) - Google Analytics