用java语言来实现动态数组中的数据增加,创建一个Myarraylist 的类,在类中用对象Object创建一个长度为0的动态数组,并且定义初始值为0的整型num (num为动态数组中数据个数),数据在不知道什么类型采用泛型(E)
代码如下:
public void Myarraylist<E>{ Object [] src = new Object[0]; int num = 0; }
在类Myarraylist 写入带有参数(E e)的增加数据方法(add):
public void add(E e){ }
增加数据是将数据按顺序放入动态数组中,在增加数据过程中,数组需要增加容量,所以在add方法中先创建一个临时的动态数组长度为原数组src的长度再加上1:src.length+1 数组为dest[src.length+1],将原数组暂时复制到新数组dest[src.length+1],再把要增加的数据(e)放入增加长度的dest[src.length+1]数组的最后一位,再把dest数组赋给src 数组,数据数量num++ 代码如下:
public void add(E e){ Object[] dest = new Object[src.length+1]; System.arrayCopy(src,0,dest,0,src.length); dest[src.length] = e; src = dest; num ++; }
写入带有1个参数的delete方法,依据参数下标index删除动态数组中数据,将原数组要删除的数据下标index后面的数据从index开始开始放到原数组中,前面方的数据位置都不变,数据数量num--.代码如下:
public void delete(int index ){ System.arraycopy(src,index+1,src,index,num-index-1); num--;
}
插入方法insert(int index, E e)带有2个参数,通过参数确定在哪个位置(index)插入哪个数据(e),而插入数据则类似于增加数据,需要开辟新的数组内存来存放,所以数组src长度和数量都发生改变,插入数据需要判断下标是否越界,可以做个判断后抛出异常。也可以判断数据数量和数组长度,如果数量大于数组长度则需要扩充数组长度。代码如下:
public void insert (int index,E e){ // if(index<0||index>=num){ throw new IndexOutOfBoundsException("下标越界"+index+"size"+num); }// if (num >= src.length) { // 增加数组容量 Object[] dest = new Object[src.length + zengliang]; // 将原数组的数据拷贝到新数组 System.arraycopy(src, 0, dest, 0, src.length); src = dest; } System.arraycopy(src,index,src,index+1,num-index); src[index] = e; num++; }
修改数据方法modify()比较简单,只要得到修改的下标,将数据修改为(e),但是要对下标做出判断 代码如下:
public void modify(int index,E s){ if(index<0||index>=num){ throw new IndexOutOfBoundsException("下标越界"+index+"size"+num); } src[index]=s; }
还需要返回数组中的数据数量num 代码如下:
public int size() { return num; }
获得数组中的数据 代码如下:
public E get(int index ){ return (E) src[index]; }
相关推荐
该文档描述的是 有关 Java 数据结构的知识,对于Java 的初级入门学员有着很大的帮助。
通过java实现数据结构的一些内容,里面有一些测试,不过没有完全按照书上代码实现,但是值得参考。(jdk1.7+junit 4 编码:utf8)
java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;
最新---数据结构Java源码
JAVA---数据结构与算法
java数据结构,里面存有1800道数据结构的试题及答案和资料
java数据结构面试题-数据结构试题全文共4页,当前为第1页。java数据结构面试题-数据结构试题全文共4页,当前为第1页。《java数据结构面试题 数据结构试题》 java数据结构面试题-数据结构试题全文共4页,当前为第1页...
IT各类面试题目,包括软件工程-数据结构-java-asp.net-网络
javalist数据结构_Java数据结构-------List 三种List:ArrayList,Vector,LinkedList 类继承关系图 ArrayList和Vector通过数组实现,⼏乎使⽤了相同的算法;区别是ArrayList不是线程安全的,Vector绝⼤多数⽅法做了...
北京大学Java课程讲义,第四部分数据结构
基于java的开发源码-数据结构提取器.zip 基于java的开发源码-数据结构提取器.zip 基于java的开发源码-数据结构提取器.zip 基于java的开发源码-数据结构提取器.zip 基于java的开发源码-数据结构提取器.zip 基于java的...
算法大全-面试题-链表-栈-二叉树-数据结构
使用java语言讲述了该语言中的数据机构的用法。
数据结构与算法分析(Java版)中英文双语版(超强力推荐)---数据结构爱好者和java爱好者必备的参考书- 数据结构与算法分析(Java版)中英文双语版(超强力推荐)---数据结构爱好者和java爱好者必备的参考书-
【程序员面试准备3】--【面向对象】-【C++基础】-【数据结构】-【JAVA】-【内存管理】-【指针】
Java 数据结构 链表 Java链表 数据结构链表
Java-C-JS数据结构与算法,这三种语言的数据结构与算法pdf高清
将一串字符串中的单词统计出现次数并排序-使用java常用数据结构
Java数据结构--13.Java8数据结构TreeSet 前⾔ ,上⼀篇中对 Set 接⼝最终实现类 HashSet 与 LinkedHashSet 做了介绍与分析,本篇将对另⼀种 Set 接⼝的最终实现类 TreeSet 进⾏ 介绍与分析。 先来看下 TreeSet 完整...
数据结构(java)实验参考,如何将一个数组倒序排列,内涵截图,myeclipse