使用java数组 封装自己的数组操作示例

 更新时间:2020年03月10日 10:20:38   作者:WFaceBoss  
这篇文章主要介绍了使用java数组 封装自己的数组操作,结合实例形式分析了java数组索引、遍历等相关封装操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了使用java数组 封装自己的数组操作。分享给大家供大家参考,具体如下:

今天感冒了,全身酸软无力,啥样不想做,就来学习吧,此节我们从初步使用java中提供的数组,然后分析相关情况,过渡到封装我们自己的数组。

一.我们先来感受一下java提供的数组,以整型数组(int[])为例,相关代码如下:

public class Main {
  public static void main(String[] args) {

    int[] arr = new int[10];
    for(int i = 0 ; i < arr.length ; i ++)
      arr[i] = i;

    int[] scores = new int[]{100, 99, 66};
    for(int i = 0 ; i < scores.length ; i ++)
      System.out.println(scores[i]);

    for(int score: scores)
      System.out.println(score);

    scores[0] = 96;

    for(int i = 0 ; i < scores.length ; i ++)
      System.out.println(scores[i]);
  }
}

1.对于数组最大优点:快速查询。例如我想知道scores下标为1数值是多少,我们只需

scroes[1]

即可快速访问到该下标对应的值。

2.数组最好应用于"索引有语义"的情况,换句话说我们得知道在查什么,比如查询学号为1的学生成绩,这种情况。如果没有语义最好是用其他的数据结构。可以以后做一个比较。

3.有的场景下:即使索引有语义,但是不适合用数组。 比如:使用11位手机号码(开辟空间是否过大,是否有空间浪费。)

但是如果我们需要在索引没有语义的情况下,也可以使用数组,这时该怎么使用数组?该怎么表示数组没有元素?该怎么添加元素?该怎么删除元素?

Java原本的数组属于静态数组,要解决以上问题,要基于Java数组二次封装属于我们的数组(动态数组)。最后做简单的复杂度分析,看看性能。

二.制作属于我们自己的数组类

此部分我们主要是为了解决上述的疑问,我们需要基于Java数组二次封装属于我们的数组(动态数组)。

操作:新建一个Array类,定义私有的data数组(此处我们从封装int类型数组为例)

/**
 * 1.从封装int类型数组开始
 */
public class Array {
  //使用private 的目的是防止用户从外界修改,造成数据不一致
  private int[] data;
  private int size;

  //构造函数,传入数组的容量capacity构造Array函数
  public Array(int capacity) {
    data = new int[capacity];
    size = 0;
  }

  //无参构造函数,默认数组的容量capacity=10
  public Array() {
    this(10);
  }

  //获取数组中元素个数
  public int getSize() {
    return size;
  }

  //获取数组的容量
  public int getCapacity() {
    return data.length;
  }

  //获取数据是否w为空
  public boolean iEmpty() {
    return size == 0;
  }
}

此处我们只是简单对数组新增几个普通方法,算是简单的入门过渡一下吧,呵呵~

对数据结构来说,本质和数据库是一样的,也是存储数据,之后再对这些数据进行高效的操作。只不过涉及的数据结构会把数据存储在内存中,所以在大的类别的划分,也是增删改查。针对不同的数据结构,对增删改查的方式是截然不同的。甚至有的数据结构会忽略其中的某个动作。但是不管怎样,增删改查四个动作可以作为我们研究一个数据结构相应的脉络。由于数组本身是静态的,创建时就必须指定大小(容量capacity)。数组有多少元素(size)。

下一节我们将针对数组新增增删改查等方法,便于我们使用数组~

仅供学习记录,别无它用。。。。

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数组操作技巧总结》、《Java字符与字符串操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Java Web三层架构的配置详解

    Java Web三层架构的配置详解

    这篇文章主要介绍了Java Web三层架构的配置方法,需要的朋友可以参考下
    2014-10-10
  • java基础知识之FileInputStream流的使用

    java基础知识之FileInputStream流的使用

    这篇文章主要介绍了java基础知识之FileInputStream流的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java数组高级算法与Arrays类常见操作小结【排序、查找】

    Java数组高级算法与Arrays类常见操作小结【排序、查找】

    这篇文章主要介绍了Java数组高级算法与Arrays类常见操作,结合实例形式总结分析了Java数组常见的排序算法、查找算法相关原理、实现与使用技巧,需要的朋友可以参考下
    2019-03-03
  • 详解Spring @Profile注解的使用和源码解析

    详解Spring @Profile注解的使用和源码解析

    这篇文章主要将通过源码带大家深入了解一下Spring中@Profile注解的原理与使用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04
  • Mybatis一对多关联关系映射实现过程解析

    Mybatis一对多关联关系映射实现过程解析

    这篇文章主要介绍了Mybatis一对多关联关系映射实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot配置文件导入方法详细讲解

    SpringBoot配置文件导入方法详细讲解

    Spring Boot虽然是Spring的衍生物, 但默认情况下Boot是不能直接使用Spring的配置文件的, 我们可以通过两种方式导入Spring的配置
    2022-10-10
  • Spring Boot 安全 API 构建之加密解密功能的实践记录

    Spring Boot 安全 API 构建之加密解密功能的实践记录

    本文详述了如何在SpringBoot3.3环境中实施API加密的最佳实践,包括选择合适的加密算法,密钥管理,数据加密,防止加密漏洞,安全日志记录,测试和监控等方面,同时,文章也对RSA非对称加密和AES对称加密的实现步骤进行了详细的解析
    2024-10-10
  • 深入解读MVC模式和三层架构

    深入解读MVC模式和三层架构

    这篇文章主要介绍了深入解读MVC模式和三层架构,三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)的三层架构,各层之间采用接口相互访问,需要的朋友可以参考下
    2023-04-04
  • SpringBoot+kaptcha实现验证码花式玩法详解

    SpringBoot+kaptcha实现验证码花式玩法详解

    这篇文章主要想和大家聊聊kaptcha的用法,毕竟这个已经有16年历史的玩意还在有人用,说明它的功能还是相当强大的,感兴趣的小伙伴可以了解一下
    2022-05-05
  • 深入理解Java编程线程池的实现原理

    深入理解Java编程线程池的实现原理

    这篇文章主要介绍了深入理解Java编程线程池的实现原理,涉及ThreadPoolExecutor类,线程池实现原理及示例等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11

最新评论