JAVA基础复习-数组

JAVA基础复习-数组,第1张

数组
  • JAVA基础复习-数组
    • 声明数组
    • 访问数组元素
    • 数组代码实例:

JAVA基础复习-数组

理解:多个相同类型的数据按一定的顺序排列,并使用一个名字命名,通过下标的方式进行管理的集合我们可以表示为数组。(Array)


特点:

  1. 有序排列的。
  2. 数组属于引用数据类型,数组中的元素,既可以是基本数据类型也可以是引用数据类型。
  3. 创建数组对象会在内存空间中开辟出一整块连续的空间。
  4. 数组长度一旦确定,就不可修改

声明数组

声明数组变量时,需要指出数组类型(数据元素类型紧跟[])和数组变量的名字,下面声明了整型数组a:

int[] a;

不过上面语句,只相当于声明了变量a,并没有将a真正初始化为一个数组,我们需要使用new来对数组进行初始化:

  • 动态初始化
    • int[] a = new int[5]; //初始化了一个容量为5的int型数组a
  • 静态初始化
    • int[] a = new int[]{1,2,3,4,5}; //同样初始化了一个容量为5的int型数组a

上述两种初始化方式,可以看出还是有一点区别的,动态初始化只指明了数组大小,对数组元素没有进行赋值 *** 作,而静态初始化是在数组初始化的基础上再进行了元素赋值。


访问数组元素

数组一旦创建完成,其数组长度大小即为确定的,此时我们可以通过数组下标(数组下标从0开始)开始获取数

中的每一个元素。

在我们初始化数组后,如果没有对数组中的元素进行赋值 *** 作,不同类型的数组之间,元素的初始化值是不同的

例如:数字型数组,所有元素初始化都为0;boolean型数组,所有元素初始化为false;对象数组的元素初始值为null

//通过for循环对数组进行赋值或输出
int[] a = new int[5];
for(int i = 0; i < a.length; i++){
    a[i] = 1;      //对数组上不同位置的元素进行赋值 *** 作
    System.out.println(a[i]);   //输出每一个位置上的元素
}

//举例对象数组
String[] s = new String[10];
//此时数组s里面的元素没有进行赋值 *** 作,元素初始值为null

数组代码实例:

有一个抽彩游戏,从1~100之间抽取6个不同的随机数,抽取出来的6个随机数可获得奖励。

package com.liulin.array;

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

        //初始化大小为100的数组a
        int[] a = new int[100];
        int n = a.length;
        for (int i = 0; i < n; i++){
            //for循环对数组每一个元素进行赋值 *** 作
            //[1,2,3,4,5.....99,100]
            a[i] = i+1;
        }

        //初始化大小为6的数组,用来保存抽到的数据
        int[] b = new int[6];
        for (int i = 0; i < 6; i++){
            //Math.random()从[0.0,1.0)随机返回一个数
            //此时index范围为[0,100)
            int index = (int) (Math.random() * n);
            //将随机出来的下标值,带入数组a中
            //把此数组下标下的元素赋值给b数组
            b[i] = a[index];
            //避免抽到重复数据,我们将抽中下标元素的值修改为a数组中最后一个元素的值
            a[index] = a[n-1];
            //然后对n进行-- *** 作,之后的随机数范围则会避免抽到最后一个元素位置下标
            n--;
        }

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

杨辉三角代码实例:

package com.liulin.array;

import java.util.Scanner;

public class NewArray {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入需要几行的杨辉三角");
        int i = scanner.nextInt();
        //初始化数组,确定数组一共有几行
        int[][] array = new int[i][];

        //循环,对每一行进行数组赋值,长度根据行数确定
        for (int x = 0; x < array.length; x++){
            for (int j = 0; j <= x; j++){
                array[x] = new int[j+1];
            }
        }

        for(int x = 0; x < array.length; x++ ){
            for (int j = 0; j <= x; j++){
                //判断此时位置是否为,开头或结尾
                if (j==0 || j==x){
                    array[x][j] = 1;
                }else{
                    //杨辉三角赋值 *** 作
                    array[x][j] = array[x-1][j-1] + array[x-1][j];
                }
            }
        }
        //增强for循环遍历
        for (int[] x:array){
            for (int z: x){

                System.out.print(z+"\t");
            }
            System.out.println();
        }

    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/920510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存