JAVA 数组基础相关

数组

数组的概念

数组是一种容器,可以同时存储多个数据,我们平时定义只能一个变量的值,但数组可以同时存储多个数据。

数组的特点
  • 数组是引用数据类型
  • 数组里必须是同一种数据类型
  • 数组一但被创建,长度就固定了,不能进行改
数组初始化与格式

数组的初始化:在内存中创建一个数组,并向其中赋予初始值
初始化有两种:
一种是动态初始化:(指定长度),另一种是静态初始化:(直接指定数据内容)
数组初始化的格式:

  • 数组类型[] 数组名 = new 数组类型[数组长度];
数组的分类

动态数组:指定数组中的元素个数
动态初始化:数组类型[] 数组名 = new 数组类型[数组长度];
静态数组:直接指定数组中的数据内容
静态初始化:数组类型[] 数组名 = new 数据类型[]{1,2,3}

数组的索引

数组的索引是从“0”开始的

数组作为函数的参数

数组可以作为参数传递给方法。例如,下面的例子就是一个打印 int 数组中元素的方法:

public static void printArray(int[] array) {
  for (int i = 0; i < array.length; i++) {
    System.out.print(array[i] + " ");
  }
}
数组作为函数的返回值
public static int[] reverse(int[] list) {
  int[] result = new int[list.length];
 
  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}
下面是相关代码

数组的创建

public class Demo01Array {
    public static void main(String[] args) {
        //创建一个数组,里面可以存300个int数据
        int[] arr = new int[300];
        //创建一个数组,可以存放10个double数据
        double[] arr2 = new double[10];
        //存放字符串
        String[] arr3 = new String[50];
    }
}

两种创建方法

public class Demo02StaticArray {
    public static void main(String[] args) {
        int[] arrStatic = new int[]{1,2,3};//用静态初始化数组,创建int数组,存放123

        String[] arr = new String[]{"hello","hi","haha"};
        //静态数组还有省略格式:数组类型[] 数组名 = {1,2,3}
        //静态数组正常格式:数组类型[] 数组名 = new 数据类型[]{1,2,3}
    }
}

数组的索引

/*直接打印数组的结果:[I@2d98a335,是数组的内存地址哈希值
访问数组元素的格式:数组名[索引]
* */
public class Demo03ArrayUse {
    public static void main(String[] args) {
        int[] arr = {1,2,3,5,6,7,8,9,10};
        System.out.println(arr[0]);//输出arr数组的0号下标的数据
        System.out.println(arr.length);//输出arr数组的长度
    }
}

数组的相关习题
1.获取数组的长度

package demo.demo01;
/*如何获取数组的长度,格式:
* 数组名称.length
* 这会得到一个int数字,代表了数组的长度
* */
public class Demon06ArrayLength {
    public static void main(String[] args) {
        int[] arr = {1,2,3,3,3,3,1,5,46,46,64,684,64,64,646};
        int len = arr.length;
        System.out.println(len);
        //另外,数组一旦创建,程序运行期间,长度无法改变
        int[] arr2 = new int[3];
        System.out.println(arr2.length);
        arr2 = new int[5];
        System.out.println(arr2.length);
    }
}

2.数组最大、最小值

package demo.demo01;
/*数组当中最大值最小值*/
public class Demo07ArrayMax {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,7};
        int max = arr[0];
        for(int i = 1;i < arr.length;i++){
            if(max < arr[i]){//如果当前元素大,max的值就被他替换
                 max = arr[i];
            }
        }
        System.out.println(max);
        int[] arr1 = {9,8,7,6,5,4,3,2,1};
        int min = arr1[0];
        for (int j = 1;j < arr1.length;j++){
            if (min > arr1[j]){//如果当前元素小,min的值就被他替换
                 min = arr1[j];
            }
        }
        System.out.println(min);
    }

}

3.对一个数组内元素进行反转

package demo.demo02;
/*数组元素的反转
* 本来:【1,2,3,4】
* 反转后:【4,3,2,1】
* 要求:用同一个数组进行反转操作*/
public class Demo08ArrayReverse {
    public static void main(String[] args) {
        int[] arr = {10,20,30,40,50};
        for (int i = 0; i < arr.length; i++) {
            System.out.println("反转之前"+arr[i]);
        }
        /*初始化语句:int min = 0,max = arr.length-1;
        * 判断表达式:min < max;
        * 步进表达式:min++,max--;
        * 循环体:temp = arr[min];arr[min] = arr[max];arr[max] = temp*/
        for (int min = 0,max = arr.length-1;min < max; min++,max--){
            int temp = arr[min];
            arr[min] = arr[max];
            arr[max] = temp;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println("反转之后"+arr[i]);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值