美文网首页数据结构
使用java数组,并开始封装我们自己的数组

使用java数组,并开始封装我们自己的数组

作者: wfaceboss | 来源:发表于2019-03-27 10:15 被阅读2次

此节我们从初步使用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数组的基础概念: 数组最大的优点是可...

  • 数组,栈,队列,链表

    数组 1:什么是数组?2:Java中数组的声明及数组的遍历3:数组天生的优势——索引4:动态数组5:封装自己的数组...

  • 动态数组

    数组应该是我们在java中最先接触的数据结构了,在本章节中,我们尝试自己重新封装实现动态数组。 一、自定义数组及构...

  • ndk08_JNI数组(快速排序),引用,异常处理,缓存策略

    一、JNI访问java数组 1.JNI访问数组并使用qsort快速排序 JNIEXPORT void JNICA...

  • 数组概念

    在java中,数组是引用类型变量。要使用数组,首先必须对数组初始化。 所谓初始化就是为数组对象元素分配内存空间,并...

  • Java知识之数组

    Java数组知识图如下: 数组基本用法 声明数组声明数组语法格式: 初始化数组Java中使用关键字new创建数组对...

  • Java学习之数组

    标签: java 数组 声明数组语法: 声明并开辟数组: 数组的数据类型 数组是引用类型。 动态初始化数组 先开辟...

  • JDK源码阅读:ByteBuffer

    Buffer是Java NIO中对于缓冲区的封装。在Java BIO中,所有的读写API,都是直接使用byte数组...

  • JDK源码阅读:ByteBuffer

    Buffer是Java NIO中对于缓冲区的封装。在Java BIO中,所有的读写API,都是直接使用byte数组...

网友评论

    本文标题:使用java数组,并开始封装我们自己的数组

    本文链接:https://www.haomeiwen.com/subject/ahmavqtx.html