欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【蓝桥杯赛前准备】【数据结构基础】数组之数组的基础构造以及属性

程序员文章站 2022-06-06 20:45:35
...

本菜狗要参加蓝桥杯啦,然后~发现自己烂的稀里哗啦,故此重温数据结构,希望大家理智面对博文
本文使用语言:JAVA
代码使用编辑器:IDEA
【数据结构之数组】

  • 前言

【蓝桥杯赛前准备】【数据结构基础】数组之数组的基础构造以及属性

  • 首先,数组是啥?

【蓝桥杯赛前准备】【数据结构基础】数组之数组的基础构造以及属性数组就是把数据码成一排进行存放
而我们则可以通过数组的下标来访问数据

例:小明想知道自己的成绩,而他在班级里的序号是01,那他就可以通过scores[0]来访问自己的成绩。

  • 数组的简单构造
    要求:数组必须指定长度
    所以有两种构造方法
int[] scores = new int[20];
int[] arr = new int[]{100,99,66}; //通过填充数字来开辟空间
  • 数组的遍历和赋值
for(int i=0;i<arr.length;i++)
{
	arr[i] = i;//通过下标来进行赋值
	System.out.println(arr[i])//遍历
}
  • 数组的索引?
    既然知道了一些数组的最基本的特性,那我们就可以深入研究数组了。
    前面提到了,数组由索引【下标】来标记数据。

    那么在所有应用场景下,索引都是有用的嘛?
    显然不是

    如果我用数组来储存考试成绩,通过下标来表示学生的序列,那么这时候的索引就是有意义的。
    如果我单纯的用数组来存放我的手机号,那数组的索引就没有意义。
    显然,数组更适合胜任索引有语义的情况,并且因为在这个时候,我们的查询会更具有针对性

【蓝桥杯赛前准备】【数据结构基础】数组之数组的基础构造以及属性

  • 数组的特性?
    知道了数组的一些属性之后,我们就可以进行构造方法的描述。

    • 数组的功能:增删改查
    • 数组的容量:capcity,就是一开始我们开拓的数组空间大小。相当于arr.length
    • 数组的大小:具体由放了多少个数字决定,我们这里给他命名为size

    知道了这些东西,我们就可以对数组进行构造
    在main下new一个Array类。

package com.company;

public class Array {
    //申明一个数组
    private int[] data;
    //有效元素
    private int size;
    //传进参数:既定容量
    //有参构造函数
    public Array(int capacity){
        data = new int[capacity];
        //int[] data = new int[capacity];
        size=0;
        //初始化的时候,承载容量为0;
    }
    //用户不知道需要的容量是多少
    //给他一个默认容量
    //无参构造函数
    public Array(){
        this(10);
    }

    //查询信息

    public int getSize() {
        return size;
    }
    //回复容量
    public int getCapacity(){
        return data.length;
    }
    //判断数组大小是否为0
    public boolean isEmpty(){
        return size == 0;
    }

    public void addLast(int e){
        if(size==data.length){
            throw new IllegalArgumentException("ADDLAST FAUILED");
        }
        data[size]=e;
        size++;
    }

    public void add(int index,int e){
        if(size==data.length){
            throw new IllegalArgumentException("ADDLAST FAUILED");
        }
    }
}
  • 构造方法

    • 当我们知道这个数组需要的空间大小时
      这句话是怎么来的呢
      因为一开始
      我们new了一个数组
      private int[] data;
      data = new int[capacity]
      其实就等于int[] data = new int[capacity]
      而这个capcity是由传进来的参数决定的
    public Array(int capacity){
            data = new int[capacity];
            //int[] data = new int[capacity];
            size=0;
            //初始化的时候,承载容量为0;
        }
    
    • 当我们不知道所以需要固定的空间大小的时候
	 public Array(){
        this(10);//这里idea会提醒capacity的大小
    }
  • 我们构造了数组就需要知道他的大小

    • 容量
     public int getSize() {
            return size;
        }	
    
    • 大小
    //回复容量
        public int getCapacity(){
            return data.length;
        }
    
    • 是否为空
        //判断数组大小是否为0
    public boolean isEmpty(){
        return size == 0;
    }
    
  • 结语:

以下就是数组的基本性质,和一些基本构造方法的使用,下篇博客我们则会系统性的整理关于数组的增删改查
课后测试

  • 数组的基本性质
  • 数组适合应用于哪些场景?
  • 数组的构造方法有哪些