`

自定义数组

 
阅读更多
/**
 * java 模拟数组
 * @author zm
 */
public class MyArray {

	private int size; // 实际个数
	
	private int[] arr;
	
	private int max; // 数组最大长度

	public MyArray(){
		arr = new int[10];
		max = 10;
	}
	
	public MyArray(int size){
		arr = new int[size];
		max = size;
	}
	
	// 尾部插入数据
	public void insert(int val){
		if(size < max){
			arr[size] = val;
			size ++;
		}else{
			throw new RuntimeException("超出数组长度,不能添加");
		}
	}
	
	// 展示数组内数据
	public void display(){
		if(this.size > 0){
			System.out.print("[");
			for(int i=0; i<size; i++){
				System.out.print(arr[i] +" ");
			}
			System.out.print("]");
		}else{
			System.out.print("[]");
		}
	}
	
	// 根据数值查找所在数组内的角标
	public int searchByVal(int val){
		
		if(this.size > 0){ 
			int i ;
			for(i=0; i<size; i++){
				if(arr[i] == val){
					break;
				}
			}
			if(i == size){
				return -1;
			}else{
				return i;
			}
		}else{
			throw new RuntimeException("数组为空");
		}
		
	}
	// 根据角标查找数组内的数据
	public int searchByIndex(int index){
		
		if(this.size > 0){ 
			if(index >= size || index <0){
				throw new RuntimeException("角标越界");
			}
			return arr[index];
		}else{
			throw new RuntimeException("数组为空");
		}
		
	}
	// 删除指定角标内的数据
	public void delete(int index){ 
		if(this.size > 0){ 
			if(index >= size || index <0){
				throw new RuntimeException("角标越界");
			}
			// 数据前移
			for(int i = index; i<size-1; i++){// i =0 i < z; i++  
				arr[i] = arr[i + 1];
			}
			size --;
			System.out.println(size);
		}else{
			throw new RuntimeException("数组为空");
		}
	}
	
	// 更新数组元素
	public void change(int index, int value){
		
		if(this.size > 0){ 
			if(index >= size || index <0){
				throw new RuntimeException("角标越界");
			}
			// 数据前移
			arr[index] = value;
		}else{
			throw new RuntimeException("数组为空");
		}
		
	}
	
	
	
	public static void main(String[] args) {
		
		MyArray array = new MyArray(3);
		array.insert(1);
		array.insert(2);
		array.insert(3);
		//array.insert(4);
		
		array.display();
		
		/*int index = array.searchByVal(5);
		System.out.println(index);*/
		
		/*int value = array.searchByIndex(2);
		System.out.println(value);*/
		
		/*array.delete(1);
		array.display();*/
		array.change(0, 4);
		array.display();
	}

	
}


 

 

 

分享到:
评论

相关推荐

    VB自定义数组类

    在VB(Visual Basic)编程环境中,自定义数组类是一种非常有用的工具,它允许开发者创建具有特定功能和行为的数组对象,以适应特定项目的需求。在标题提到的"VB自定义数组类"中,作者实现了一个原创的数组类,旨在...

    axis自定义数组对象

    ### Axis自定义数组对象知识点详解 #### 一、概述 在进行Web服务开发时,我们经常需要处理复杂的类型,如自定义的数组或对象。Apache Axis框架为Java开发者提供了强大的支持,使得创建、部署和调用Web服务变得简单...

    IntArraySample1.rar_自定义数组

    自定义数组是指程序员根据需求创建特定大小和用途的数组。在这个名为“IntArraySample1”的压缩包中,我们很可能会找到一个用某种编程语言(可能是Java、C++或Python等)编写的示例程序,演示如何创建和操作自定义...

    axis参数为自定义数组

    标题“axis参数为自定义数组”暗示我们将探讨如何使用自定义数组来操作`axis`,这通常涉及到像NumPy这样的库。让我们深入了解一下这个主题。 NumPy是Python中的一个强大库,用于科学计算,它提供了多维数组对象...

    自定义数组并加减乘

    1.自定义数组并实现数组2.自定义n个数组并实现输出3.定义两个数组并实现加减乘。

    泛型自定义数组大小

    在Java编程中,"泛型自定义数组大小"是一个重要的概念,它涉及到数据结构和算法的基础,以及面向对象编程中的类型安全。泛型是Java 5引入的一个特性,旨在提高代码的类型安全性,减少类型转换的冗余,并提供编译时的...

    自定义数组中寻找最大元素位置

    ### 自定义数组中寻找最大元素位置 #### 概述 本文将详细介绍如何通过编写Java程序,在一个二维数组中查找最大值及其位置。本程序适用于任何大小的数组,并能准确地返回最大值所在的行和列索引。 #### 程序结构...

    Excel-VBA宏编程实例源代码-快速输入月份名称的自定义数组函数.zip

    本实例“Excel-VBA宏编程实例源代码-快速输入月份名称的自定义数组函数.zip”着重展示了如何利用VBA编写自定义数组函数来快速输入月份名称。以下是对这个主题的详细讲解: 1. **VBA宏基础**: VBA是Microsoft ...

    NingArray宁数组一些实用的基于ES6的自定义数组方法

    宁数组(Ning·Array)是一组实用的基于ES6语法的自定义数组方法,它扩展了JavaScript原生数组的功能,提供了更为灵活和强大的数组操作工具。这些方法旨在简化常见的数组处理任务,提高代码的可读性和效率。下面将...

    C++ 中自定义数组容器MyVector实现

    C++ 中自定义数组容器MyVector实现+类模板实现过程中产生的问题的详细注释

    C++ 中自定义数组容器MyVector的实现

    本篇文章将深入探讨如何实现一个类似于标准库中的`std::vector`的自定义数组容器——MyVector,并通过类模板来增强其泛型编程的能力。我们将详细分析`MyVector`的实现过程,以及在实现过程中可能遇到的问题。 首先...

    Javascript remove 自定义数组删除方法

    Javascript自定义数组删除方法remove()&lt;/title&gt; [removed] Array.prototype.remove=function(dx){ if(isNaN(dx)||dx&gt;this.length){return false;} for(var i=0,n=0;i&lt;this.length;i++){ if(this[i]!=this...

    Js利用prototype自定义数组方法示例

    而本文主要给大家介绍了关于Js利用prototype自定义数组方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 题目 如何实现下列代码: [1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,...

    MyArray.py

    自定义数组。在MyArray.py文件中,定义了一个数组类,重写了一部分特殊方法以支持数组之间、数组与整数之间的四则运算以及内积、大小比较、成员测试和元素访问等运算符。被我运用来解决三维向量Vector类这道PTA的...

    java 创建自定义数组

    在Java编程语言中,创建自定义数组意味着我们不使用基本数据类型(如int、double等)来创建数组,而是使用自定义的类实例。自定义类通常包含特定于业务逻辑的属性和方法。在这个例子中,`Student` 类被用作自定义...

    自定义数组大小滚动趋势判断

    连接现场实时数,代替岗位工眼睛判断一段趋势是上升还是下降,进而进行下一步操作,比如转炉下副枪的时机,岗位工通过观察CO2、CO的趋势进行下副枪...输入:实时值、数组大小 输出:y=kx+b、斜率k、截距b、相关系数r^2

    Bin文件转换成C语言的数组,支持自定义数组名称

    这个小工具的作用是打开一个Bin文件,转换成C语言的数组,这样可以把Bin文件数据定义到容量大的MCU里面。这样可以用大容量的MCU用BootLaoder方式更新另外一个MCU的程序。 打开exe,导入一个Bin文件,点击转换,就会...

    JavaScript自定义数组排序方法

    本文实例讲述了JavaScript自定义数组排序方法。分享给大家供大家参考。具体分析如下: Array中有自带的排序功能,这个使用起来比较方便,我们有一点必须清楚,就是排序的依据,如果sort不传入参数的话,那就是按照...

    易语言新内存数组

    例如,在处理文件数据时,可以先用“LocalAlloc”分配内存,然后用“读自定义数组_整数型”读取文件内容到内存数组,进行处理后再用“写自定义数组_整数型”将结果写回文件或内存,最后用“LocalFree”释放内存。...

Global site tag (gtag.js) - Google Analytics