java数据结构系列之——数组(1)
import javax.management.RuntimeErrorException; public class MyArray {
private long array[];
private int elements;//用于记录数组中实际数据的个数 public MyArray(){
array=new long[50];//数组默认长度为50;
} public MyArray(int capacity){//设置数组的默认长度
array=new long[capacity];
} /**
* 在数组末尾添加元素
*/
public void add(long data){
if(elements>array.length){
throw new ArrayIndexOutOfBoundsException();
}
array[elements]=data;
elements++;
} /**
* 在index处插入元素data
*/
public void insert(int index,long data){
if(index>=array.length||index<0){
throw new IndexOutOfBoundsException();
} if(elements>array.length-1){
throw new ArrayIndexOutOfBoundsException();
} for(int i=elements;i>=index;i--){
array[i+1]=array[i];
}
array[index]=data;
elements++;
} /**
* 删除index处的元素
* @param index
*/
public void delete(int index){
if(index>=array.length||index<0){
throw new IndexOutOfBoundsException();
}
for(int i=index;i<=elements;i++){
array[i]=array[i+1];
}
elements--;
} /**
* 删除元素data
* @param data
*/
public void delete(long data){
int addr=search(data);
if(addr==-1){
System.out.println(data+"不存在");
}else{
for(int i=addr;i<=elements;i++){
array[i]=array[i+1];
}
elements--;
}
} /**
* 将index处的元素更新为newdata
* @param index
* @param newdata
*/
public void update(int index,long newdata){
if(index>=array.length||index<0){
throw new IndexOutOfBoundsException();
}
array[index]=newdata;
} /**
* 查找index处的元素
* @param index
* @return
*/
public long search(int index){
if(index>=array.length||index<0){
throw new IndexOutOfBoundsException();
}
return array[index];
} public int search(long data){
int i;
for(i=0;i<=elements;i++){
if(array[i]==data){
return i;
}
}
return -1;
} /**
* 打印数组中的类容
*/
public void display(){
System.out.print("[");
for(int i=0;i<elements-1;i++){
System.out.print(array[i]+",");
}
System.out.print(array[elements-1]);
System.out.println("]");
}
}
java数据结构系列之——数组(1)的更多相关文章
- JAVA数据结构系列 栈
java数据结构系列之栈 手写栈 1.利用链表做出栈,因为栈的特殊,插入删除操作都是在栈顶进行,链表不用担心栈的长度,所以链表再合适不过了,非常好用,不过它在插入和删除元素的时候,速度比数组栈慢,因为 ...
- Java数据结构和算法 - 数组
Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new ...
- JAVA数据结构--ArrayList动态数组
在计算机科学中,动态数组,可扩展数组,可调整数组,动态表,可变数组或数组列表是一种随机存取可变大小列表数据结构,允许添加或删除元素.它提供许多现代主流编程语言的标准库.动态数组克服了静态数组的限制,静 ...
- 图解Java数据结构之稀疏数组
在编程中,算法的重要性不言而喻,没有算法的程序是没有灵魂的.可见算法的重要性. 然而,在学习算法之前我们需要掌握数据结构,数据结构是算法的基础. 我在大学的时候,学校里的数据结构是用C语言教的,因为对 ...
- (二)Java数据结构和算法——数组
一.数组的实现 上一篇博客我们介绍了一个数据结构必须具有以下基本功能: ①.如何插入一条新的数据项 ②.如何寻找某一特定的数据项 ③.如何删除某一特定的数据项 ④.如何迭代的访问各个数据项,以便进行显 ...
- Java基础系列--04_数组
一维数组: (1)数组:存储同一种数据类型的多个元素的容器. (2)特点:每一个元素都有编号,从0开始,最大编号是数组的长度-1. 编号的专业叫法:索引 (3)定义格式 A:数据类型[] 数组名;(一 ...
- java数据结构系列——排列(2):有序阵列
package Array; /** * 对数组排序.当添加到阵列保持有序数组元素: * @author wl * */ public class MyOrderArray { private lon ...
- Java数据结构系列——简单排序:泡、选择、直接进入
package SimpleSort; public class SimpleSort { /** * 冒泡排序:每次循环过程中.小的排在后面的数会像水中的 * 气泡一样慢慢往上冒,所以命名为冒泡排序 ...
- Java基础系列 - 查找数组的最大值和最小值
package com.test6; public class test5 { public static void main(String[] args) { int[] arr = {1, 2, ...
随机推荐
- 最近跑hadoop遇到的一些问题
一. [#|2013-09-16T18:19:02.663+0800|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterpris ...
- 解决android3.0版本号以上应用接收不到开机广播问题
如今是2014-07-16 下午15:27. 好久没写过东西,突然间灵感喷发想写点东西(事实上是刚刚弄好了一个棘手的问题,自豪中..呵呵呵呵 我牛掰).废话不多说,进入正题. 不知道你们又没有碰到这问 ...
- ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总
一.设备OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...
- unrecognized selector sent to instance 0x10b34e810
一个错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURLEr ...
- 解决mongodb设备mongod命令不是内部或外部的命令
1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现下面文件 在安装的盘C:下建立mongodb目录,拷贝bin目录到该目录 ...
- hive的非交互模式
在linux的终端运行:$HIVE_HOME/bin/hive 会进入交互模式: $HIVE_HOME/bin/hive -e或者-f 是非交互模式 1.非交互模式运行HQL语句 $HIVE_HOM ...
- 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern)
原文:乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pa ...
- 如何在Dreamweaver中使用zen coding
在我发表上一篇<Zen Coding: 一种快速编写HTML/CSS代码的方法>之后,有网友表示不知道怎么在Dreamweaver上使用zen coding插件.OK,今天我就写一篇详细的 ...
- HDU 1085-Holding Bin-Laden Captive!(生成功能)
Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- Bombing HDU, 4022(QQ糖的消法)
Bombing From:HDU, 4022 Submit Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 ...