数组学习1

package ch01;

public class MyArray {

	//需要一个真实的数组
	private long [] arr;

	private int elements;//数据元素的个数

	public MyArray(){
		arr = new long[50];
	}

	public MyArray(int maxsize){
		arr = new long[maxsize];
	}
	//添加数据的方法
	public void insert(long value){
		arr[elements] = value;
		elements++;

	}
	//显示的方法
	public void display(){
		System.out.print("[");
		for(int i=0;i<elements;i++){
			System.out.print(arr[i]+"  ");
		}
		System.out.print("]");
		System.out.println();
	}

	//查找数据的方法,查找数据根据值来查找,返回值的下标
	public int search(long value){
		int i;
		for(i=0;i<elements;i++){
			if(arr[i] == value){
				break;
			}
		}
		if(i == elements){
			return -1;
		}else{
			return i;
		}

	}

	//查找数据,根据索引返回值
	public long get(int index){
		//判断数组是不是越界
		if(index < 0 || index >= elements){
			throw new ArrayIndexOutOfBoundsException("数组越界");
		}else{
			return arr[index];
		}

	}

	//删除数据
	public void delete(int index){
		if(index >=elements || index < 0){
			throw new ArrayIndexOutOfBoundsException("数组越界");
		}else{
			for(int i=index;i<elements;i++){
				arr[index] = arr[index+1];
			}
			//数组的长度--
			elements--;
		}

	}

	//更新数据
	public void change(int index,int newvalue){

		if(index >= elements || index < 0) {
			throw new ArrayIndexOutOfBoundsException();
		} else {
			arr[index] = newvalue;
		}

	}

}

  

时间: 2024-11-10 09:51:03

数组学习1的相关文章

后缀数组学习笔记【详解|图】

后缀数组学习笔记[详解] 老天,一个后缀数组不知道看了多少天,最后终于还是看懂了啊! 最关键的就是一会儿下标表示排名,一会用数值表示排名绕死人了. 我不知道手跑了多少次才明白过来.其实我也建议初学者手跑几遍,但是一定要注意数组的意义,否则就是无用功. 数组含义: s[ ]:输入的字符串,预处理的时候会在末尾加上一个0 sa[ ]:它的下标就是后缀排名 x[ ] = t[ ]:用来保存第一关键字排名,注意!它的数值是排名.初始时恰好是字符串的ASCII码.字典序嘛! y[ ] = t2[ ]:它的

js数组学习整理

原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); //长度为3 var colors = new Array('red','blue');//初始化 其中,在声明数组的时候,去掉new操作符,也可以. 还有一种初始化数组的方式,使用数组字面量表示法 . 数组字面量由一对包含数组项的方括号表示,多个数组项之间用逗号隔开. var colors = [ '

一维数组学习中

所谓数组,就是按一定顺序排列,具有某种相同性质的同类型变量的集合.这些变量具有相同的名字和数据类型,在内存中顺序排列,并通过下标相互区分,所以也叫下标变量.数组中的各数据称为数组元素,用数组名和下标表示.如int a[8];的意思就是a是一个基本类型为int的数组,它由8个元素组成,即a[0],a[1],a[2]....,a[7].程序中我们可以直接使用各个数组元素,而不需要对他们逐个定义.它们在内存中的存放顺序如下: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7

蓝鸥Unity开发基础—— 一维数组学习笔记

蓝鸥Unity开发基础-- 一维数组学习笔记 一.数组 之前我们学过很多数据类型,今天我们来学习数字,数字也是一种数据类型,那么,具体的数组是如何定义的? 数组:相同数据类型的成员组成的一组数据 Int类型数组:4  7  12  3  5--数组元素 Float数据类型数字:11.5 4.62 7.1 2.21 9.3--数组元素 数组中每一个元素都会分配一个数组下标,数组下标是从0开始的,有序排列,如:0 1 2 3 4 二.声明并初始化数组: 数组也是数据类型,所以也可以声明变量.使用ne

蓝鸥Unity开发基础—— 二维数组学习笔记

蓝鸥Unity开发基础-- 二维数组学习笔记 一.二维数组 有两个下标的数组叫做二维数组 类似[,]数组名=new类型[常量表达式1,常量表达式2] int[,] numbers= new int[2,3]; [0,0] [0,1] [0,2] [1,0] [1,1] [1,2] 举例说明 using System; namespace Lesson16{    class MainClass    {        public static void Main (string[] args)

勾股数组 学习笔记

颓废了一个暑假,想做点CF提高一下智商,然后就被这题卡住了.    http://codeforces.com/contest/707/problem/C 题目大意是给出各条边都是正整数的直角三角形的一条边长,求另外两条边可能的一种方案. 除了爆搜脑子一片空白,然后就很没志气的看了题解,提到了勾股数组,于是学习了一下.网络上的资料感觉证明不是详细,所以自己来写个总结. 1.首先如果 $a^2+b^2=c^2$ , 则$(ka)^2+(kb)^2=(kc)^2$ , 因此我们先只考虑$gcd(a,

java二维数组学习(转)

转自:http://blog.csdn.net/java1992/article/details/5808709,在这里谢过了 /* * java学习: * 二维数组的使用: */public class test { public static void main(String[] args) { //二维数组的声明方式: //数据类型 [][] 数组名称 = new 数据类型 [长度][长度] ; //数据类型 [][] 数组名称 = {{123},{456}} ; /* int [][]

Javascript数组学习

记录下学习数组的过程 1.创建数组 1 var ary1 = new Array();//空数组 2 var ary2= [] ;//字面量 2.数组检测 //方法一 if(array instanceof Array){ } //方法二 ES5 if(Array.isArray(array)){ } //方法三 Object.prototype.toString.apply(arrary,arguments); 3.数组转换方法 //1.toString(); var ary =['aaaa'

黑马程序员——JAVA数组学习总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- www.itheima.com 学习数组,学会如何声明,如何遍历,如何获取最值,还有交换,排序方法就差不多了,因为后期都是使用集合的更多. 一维数组1)   int[] a;   //声明,没有初始化 2)   int[] a=new int[5];   //初始化为默认值,int型为0 3)   int[] a={1,2,3,4,5};   //初始化为给定值 4)   int[] a=ne

java一维数组学习

/* * java学习: * 一维数组的使用: 声明语法 DataType[] name 或 DataType name[]. 初始化语法 DataType[] name = new DataType[length]. DataType[] name = new DataType[] { element1, element2, ...elementn }. DataType[] name = { element1, element2, ...elementn }. Java中使用关键字new创建