`
阅读更多

用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];
	}

 

2
0
分享到:
评论

相关推荐

    java-数据结构代码实现

    本资料包“java-数据结构代码实现”提供了使用Java语言实现数据结构的实例,旨在帮助开发者加深对数据结构的理解并提升编程技能。 1. **链表**:链表是一种动态数据结构,其元素在内存中不是顺序排列的。Java中的...

    java---数据结构

    在IT领域,尤其是在编程世界,数据结构是至关重要的一个概念,尤其对于Java开发者而言。数据结构是组织、管理和存储数据的方式,它允许我们高效地访问和修改数据。本资源包"java---数据结构"显然是针对Java程序员...

    java版数据结构-树结构

    java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;java版数据结构-树结构;

    软件工程-数据结构-java-asp.net-网络各类面试题

    IT各类面试题目,包括软件工程-数据结构-java-asp.net-网络

    protobuf--java-3.2.0.jar & protoc-3.2.0-windows-x86_32.exe

    1. **Protocol Buffers(protobuf)**:这是一个强大的数据交换的开源框架,它允许开发者定义数据结构,然后生成能够轻松读写这种结构的代码。protobuf的主要优点在于其高效性,序列化后的数据体积小,解析速度快,...

    mysql-connector-java-5.1.27-bin.jar.zip

    Hive是一款基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,适合处理和管理大规模数据。在Hive中,如果需要将数据存储在MySQL这样的关系型数据库中,或者从MySQL导入...

    最新---数据结构(java版)第4版-叶核亚[全套]

    总之,《数据结构(java版)第4版》是一本全面介绍Java数据结构的教程,对于提升编程能力,特别是在解决复杂问题时的算法设计和实现能力,有着极大的帮助。通过深入学习,开发者可以更好地设计和优化他们的代码,提高...

    mysql-connector-java-5.1.10-bin.jar包下载

    它允许用户将大规模数据导入到Hadoop的HDFS,或者从Hadoop导出数据到结构化数据库。在与MySQL交互时,由于Hadoop生态系统主要由Java构建,因此需要一个JDBC驱动来连接MySQL。这就是`mysql-connector-java-5.1.10-bin...

    JAVA---算法与数据结构

    在编程领域,尤其是Java开发中,数据结构与算法是核心基础,它们对于编写高效、优化的代码至关重要。数据结构是组织、存储和处理数据的方式,而算法是解决问题或执行特定任务的步骤序列。理解并掌握这两者对于成为一...

    java-data-struct.rar_数据结构 java_数据结构源码

    "java-data-struct.rar_数据结构 java_数据结构源码"这个压缩包文件包含了用Java实现的数据结构的相关代码,对于学习和理解数据结构的实现具有很高的参考价值。 1. **链表(LinkedList)**:链表是一种线性数据结构...

    protobuf-java-3.5.1.jar+protoc.exe哦

    在这个压缩包中,`protobuf-java-3.5.1.jar`是protobuf的Java库,包含了运行时所需的类和方法,用于序列化和反序列化protobuf定义的数据结构。这个版本的jar文件适用于Java 8及以上版本,确保在Java项目中使用...

    数据结构(java版本)

    《数据结构(Java版本)》这本书正是为此目的而编写,旨在将理论与实际编程相结合,通过Java语言来实现各种经典的数据结构。 首先,书中的基础部分会介绍数据结构的基本概念,如数组、链表、栈和队列。数组是最基本...

    mysql-connector-java-8.0.31-jar包

    10. **元数据获取**:通过JDBC接口,可以获取数据库的元数据信息,如表结构、列信息、索引等,方便进行数据库设计和开发。 总之,"mysql-connector-java-8.0.31-jar包"是Java开发者连接MySQL数据库不可或缺的工具,...

    protoc.exe和protobuf-java-3.6.1集合

    protobuf是一种高效的数据序列化协议,它允许开发者定义数据结构,然后生成能够在各种编程语言中使用的代码,便于数据的存储和交换。 首先,我们来详细解释一下这两个组件: 1. **protoc.exe**:这是protobuf的...

    java数字统计-使用java数据结构

    将一串字符串中的单词统计出现次数并排序-使用java常用数据结构

    mysql-connector-java-5.1.37

    7. **元数据获取**:可以使用`DatabaseMetaData`接口来获取关于数据库、表、列等的信息,帮助开发者了解数据库结构。 8. **性能优化**:MySQL Connector/J 5.1.37包含了性能优化特性,如预编译的SQL语句(`...

    Java-C-JS数据结构与算法合集

    《Java-C-JS数据结构与算法合集》是针对编程领域的三大主流语言——Java、C和JavaScript,深入探讨数据结构与算法的宝贵资源。数据结构是计算机存储、组织数据的方式,而算法是解决问题的精确步骤,它们是软件开发的...

    protobuf-java-3.9.0.jar

    你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。 protobuf-java-3.9.0.jar包 太难找了,只能是自己发布一个jar包 特此分享出来

    java-根据过滤条件显示树形结构

    总结一下,Java中根据过滤条件显示树形结构涉及的主要知识点有:树形数据结构的实现,自定义节点类,过滤逻辑的定义,以及使用Swing的`JTree`组件进行可视化展示。理解并掌握这些概念,可以帮助你有效地处理复杂的...

Global site tag (gtag.js) - Google Analytics