java-数据结构
来源:互联网 发布:redis批量查询数据 编辑:程序博客网 时间:2024/06/16 18:38
用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<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 1.5; background-color: white;">--</span><span style="font-size: 1em; line-height: 1.5;">;</span>
- }
插入方法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数据结构
- java数据结构
- JAVA数据结构
- JAVA数据结构
- java数据结构
- java数据结构
- JAVA数据结构
- Java数据结构!!!
- JAVA数据结构
- JAVA数据结构
- JAVA数据结构
- java数据结构
- JAVA数据结构
- JAVA数据结构
- JAVA数据结构
- JAVA数据结构
- Java动态打Jar包工具类
- android studio制作.9图片,并且不改变原图大小
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- linux内核file_operations的赋值流程跟踪
- navicat for postgresql使用须知
- java-数据结构
- java——反射
- gensim 基本使用
- margin使用两大bug
- 1002. 写出这个数 (20)
- 自定义View与ViewGroup
- 创业。
- PPFish-NOIP模拟题2015题解
- zxing生成二维码以流式传到页面