【JAVA基础学习】关于数组的定义、声明、使用以及多维数组的详细讲解!!!

本文介绍了Java中的数组,包括数组的定义、声明创建方式,如静态和动态初始化,以及数组的基本特点。详细阐述了如何访问数组元素,使用for循环和for-each循环遍历数组。此外,还讨论了多维数组的概念,以及Arrays类提供的实用方法,如排序。最后,给出了冒泡排序算法的实现示例。
摘要由CSDN通过智能技术生成

目录

数组

数组的定义

数组声明创建

数组的四个基本特点

数组的使用

多维数组

Arrays类

冒泡排序

数组

数组的定义

  • 数组是相同类型的有序集合

  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成

  • 每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问

数组声明创建

数组类型 [] 数组名;//首选

数组类型 数组名[];//效果一样,但不是首选

Java语言使用new操作符来创建数组,语法如下:

数组类型 [] 数组名 = new 数组类型[数组空间];

double[]b=new double[5];

数组元素是通过索引去访问的,数组索引从0开始

double[]b=new double[5];
b[0]=1;

获取数组的长度:

b.length

静态初始化:创建+赋值

int[]a={1,2,3,4,5};
System.out.println(a[0]);

动态初始化:包含默认初始化

int[]b=new int[5];
b[0]=1;
b[1]=2;

数组的四个基本特点

  1. 长度是确定的,数组一旦被创建,它的大小就是不可以改的

  2. 元素必须是相同类型,不允许出现混合类型

  3. 数组中的元素可以是任意类型,包括基本类型和引用类型

  4. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量,数组本身就是对象,Java中的对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

数组的使用

普通的for循环

int[] arrays = {1, 2, 3, 4, 5};
//打印全部的数组元素
for (int i = 0; i < arrays.length; i++) {
    System.out.print(arrays[i] + "\t");
}

for-each循环

int[] arrays = {1, 2, 3, 4, 5};
//打印全部的数组元素
for (int array : arrays) {
    System.out.println(array);
}

数组作方法入参

int[] arrays = {1, 2, 3, 4, 5};
//打印全部的数组元素
public static void printArray(int[]arrays){
    for (int i=0;i<arrays.length;i++){
        System.out.print(arrays[i]+"\t");
    }
​
}

数组作返回值

//反转数组
public static int[] reverse(int[]arrays){
    int[] results=new int[arrays.length];
   for (int i=0,j= results.length-1;i<results.length;i++,j--){
       results[i]=arrays[j];
    }
    return results;
}

多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其中每一个元素都是一个一维数组

二维数组:

int[][]array = new int[2][5];//两行五列的数组
int[][]a={{1,2},{2,3},{3,4},{4,5}};// int[][] a = new int[4][2];4行2列
/*
1,2 array[0]
2,3 array[1]
3,4 array[2]
4,5 array[3]
*/

二维数组使用:

for (int i=0;i<a.length;i++){
    for(int j=0;j<a[i].length;j++){
        System.out.print(a[i][j]+"\t");
    }
}

Arrays类

Arrays类里面包含了很多数组方法,可以直接使用它来解决很多数组问题

int[]a={1,2,3,4,9090,543,21,6,25};
System.out.println(a);//[I@1b6d3586
//打印数组元素
System.out.println(Arrays.toString(a));
//数组排序
Arrays.sort(a);
System.out.println(Arrays.toString(a));

冒泡排序

冒泡排序无疑是最出名的排序算法之一,总共有八大排序

冒泡的代码相对简单,两层循环,外层冒泡轮数,里层依次比较,人尽皆知

冒泡排序:

    1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换它们的位置

    2.每一次比较,都会产生出一个最大,或者最小的数字

    3.下一轮则可以少一次排序

    4.一次循环直到结束

public static int[] sort(int[]array){
    //临时变量
    int temp=0;
    //外层循环,判断我们要走多少次
    for (int i = 0; i < array.length-1; i++) {
        boolean flag=false;//通过flag标识位减少没有意义的比较
        //内层循环,比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换它们的位置
        for(int j=0;j< array.length-1-i;j++){
            if (array[j+1]<array[j]){
                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
                flag=true;
            }
        }
        if(flag==false){
            break;
        }
    }
    return array;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值