`

自定义数组的创建

    博客分类:
  • java
阅读更多

    自定义数组是为了克服传统数组的缺点,更好地方便程序员编程,由程序员自己编写的数组。

  一.  在此之前先说说JAVA中数组的缺点如下:

         1.数组中元素类型统一,不能改变。

         2.数组的长度固定,不能改变。

         3.数组不便于插入,删除元素。

二.自定义数组就是要吸取JAVA中数组的优点,克服其缺点。

     1.首先我们来克服第一个缺点-----数组中元素类型统一。

        我们知道基本数据类型在JAVA中都有其包转类。我们要在一个数组中存入各种数据类型的话,我们可以考虑把数组类型定义为它们的超类Object类型;

         private  Object[] src=new Object[3];

  这就定义了一个Object类型长度为3的数组,其可以存入各种类型的元素(如:字符串,对象,整型等等)

     2.我们在来克服第二个缺点------长度固定。

        当一个数组Array1长度固定后,我们要改变其长度的话就要重新定义一个数组Array2,将Array2的长度定长些,再把Array1的元素复制到Array2.然后将Array2赋值给Array1(Array1=Array2),这样Array1就指向Array2数组的起始地址,这样Array1的长度就变长为Array2的长度。

如下定义一个函数可以根据需要动态地改变数组长度:

    public class List {
               private  Object[] src=new Object[0];
    //在末尾增加元素  
             public void add(Object obj){
                    //定义新数组,长度加1
                     Object[] dest = new Object[src.length+1];
                      //拷贝
                     for(int i=0;i<src.length;i++){
                      dest[i] = src[i];
                   }       
                                //交换数组
                   src = dest;
          }

    3.最后我们来解决第三个缺点-----数组的定位插入,删除元素

     跟上例相似,我们只要将指定位置t之前的值赋给dest[i],再在t位置加入要添加的数,再将之后的数一一复制就行。删除就是就指位置的值覆盖就行

如下定位插入例子:

    //在指定位置添加元素
 public void add2(Object object, int t){   //在指定位置添加
          Object[]dest=new Object[src.length+1];
               for(int i=0;i<t;i++)
                { dest[i]=src[i];     
                }
              dest[t]=object;
              for(int i=t+1;i<src.length;i++)
            { dest[i]=src[i];     
              }
                src=dest;
             }

      

分享到:
评论

相关推荐

    VB自定义数组类

    在VB(Visual Basic)编程环境中,自定义数组类是一种非常有用的工具,它允许开发者创建具有特定功能和行为的数组对象,以适应特定项目的需求。在标题提到的"VB自定义数组类"中,作者实现了一个原创的数组类,旨在...

    axis自定义数组对象

    ### Axis自定义数组对象知识点详解 #### 一、概述 在进行Web服务开发时,我们经常需要处理复杂的类型,如自定义的数组或对象。Apache Axis框架为Java开发者提供了强大的支持,使得创建、部署和调用Web服务变得简单...

    IntArraySample1.rar_自定义数组

    自定义数组是指程序员根据需求创建特定大小和用途的数组。在这个名为“IntArraySample1”的压缩包中,我们很可能会找到一个用某种编程语言(可能是Java、C++或Python等)编写的示例程序,演示如何创建和操作自定义...

    axis参数为自定义数组

    标题“axis参数为自定义数组”暗示我们将探讨如何使用自定义数组来操作`axis`,这通常涉及到像NumPy这样的库。让我们深入了解一下这个主题。 NumPy是Python中的一个强大库,用于科学计算,它提供了多维数组对象...

    泛型自定义数组大小

    在Java编程中,"泛型自定义数组大小"是一个重要的概念,它涉及到数据结构和算法的基础,以及面向对象编程中的类型安全。泛型是Java 5引入的一个特性,旨在提高代码的类型安全性,减少类型转换的冗余,并提供编译时的...

    自定义数组中寻找最大元素位置

    ### 自定义数组中寻找最大元素位置 #### 概述 本文将详细介绍如何通过编写Java程序,在一个二维数组中查找最大值及其位置。本程序适用于任何大小的数组,并能准确地返回最大值所在的行和列索引。 #### 程序结构...

    Excel-VBA宏编程实例源代码-快速输入月份名称的自定义数组函数.zip

    本实例“Excel-VBA宏编程实例源代码-快速输入月份名称的自定义数组函数.zip”着重展示了如何利用VBA编写自定义数组函数来快速输入月份名称。以下是对这个主题的详细讲解: 1. **VBA宏基础**: VBA是Microsoft ...

    NingArray宁数组一些实用的基于ES6的自定义数组方法

    宁数组(Ning·Array)是一组实用的基于ES6语法的自定义数组方法,它扩展了JavaScript原生数组的功能,提供了更为灵活和强大的数组操作工具。这些方法旨在简化常见的数组处理任务,提高代码的可读性和效率。下面将...

    java 创建自定义数组

    在Java编程语言中,创建自定义数组意味着我们不使用基本数据类型(如int、double等)来创建数组,而是使用自定义的类实例。自定义类通常包含特定于业务逻辑的属性和方法。在这个例子中,`Student` 类被用作自定义...

    C++ 中自定义数组容器MyVector的实现

    本篇文章将深入探讨如何实现一个类似于标准库中的`std::vector`的自定义数组容器——MyVector,并通过类模板来增强其泛型编程的能力。我们将详细分析`MyVector`的实现过程,以及在实现过程中可能遇到的问题。 首先...

    易语言自定义数据类型数组排序

    本话题聚焦于“易语言自定义数据类型数组排序”,将深入探讨如何在易语言中创建、操作自定义数据类型数组,并实现各种排序算法,如根据产地、类别和售价等属性进行排序。 自定义数据类型在易语言中允许我们定义包含...

    易语言自定义类型数组排序

    接下来,我们讨论如何创建自定义类型数组。在易语言中,可以使用“数组”关键字来声明并初始化自定义类型的数组。例如,创建一个包含10个学生的数组: ```易语言 .学生 学生数组[10] ``` 排序自定义类型数组的关键...

    易语言新内存数组

    “创自定义数组_整数型”是创建新内存数组的函数,它允许程序员指定数组的长度和数据类型。在这个例子中,数据类型为整数型,意味着数组中每个元素都是一个整数值。这个函数会返回一个指向数组起始位置的指针,便于...

    易语言挂号法-自定义数据数组排序

    例如,对于一个包含对象的自定义数据数组,我们可以先定义对象的结构,然后创建数组并逐个初始化每个对象。 冒泡法是最基础的排序算法之一,它通过不断交换相邻的错误顺序元素来逐步达到排序的目的。在挂号法中,...

    易语言源码挂号法-自定义数据数组排序.rar

    在易语言中,数组是一种存储相同类型数据的集合,而自定义数据数组则是允许我们根据需求创建具有特定结构的数据数组,例如包含多个不同类型成员的结构体数组。这样的数组可以更灵活地处理复杂的数据结构。在描述中...

    c#调用Oracle UDT自定义结构数组类型源代码

    在这个例子中,我们创建了一个`OracleParameter`,设置了它的类型为`OracleDbType.Object`,值为我们的自定义数组类型实例,同时指定`UdtTypeName`为我们在Oracle中定义的UDT名称。 注意,如果是在.NET Core环境中...

    易语言自定义类型数组排序源码

    1. **自定义类型定义**:在易语言中,自定义类型通过`定义类型`命令来创建,可以包含整数、浮点数、字符串等基本类型,甚至其他自定义类型。例如,你可以定义一个包含姓名(字符串)、年龄(整数)和成绩(浮点数)...

    关于WinCC自定义返回数组函数书写规则正确写法.rar

    本教程将详细阐述如何在C++中创建一个模糊控制DLL,并在WinCC中正确调用该DLL,特别是涉及自定义返回数组函数的书写规则。 首先,我们需要了解DLL的基本概念。DLL是一种共享库,它可以包含执行代码和资源,多个程序...

    Js利用prototype自定义数组方法示例

    ### 如何自定义数组方法? 在给定的示例中,我们想要创建一个名为`duplicator`的新方法,使得调用这个方法的数组能够复制自身,形成一个新的数组。下面是实现这个方法的代码: ```javascript Array.prototype....

    易语言自定义数据类型数组排序-易语言

    例如,你可以创建一个包含姓名、年龄、性别等信息的学生数据类型,然后创建一个学生数组来存储多个学生的信息。在处理大量数据时,对数组进行排序能提高数据检索效率和程序的运行性能。 排序算法是计算机科学中的...

Global site tag (gtag.js) - Google Analytics