JAVA 数组

JAVA 数组


数组的概念及定义

数组 是 Java程序中提供的一种最简单的数据结构 

可以用来存储一个元素 个数固定 类型相同 的有序 集

数组 储存在堆内存中

  • 栈:主要用于运行函数的内存
  • 堆:主要用于存储数据对象的内存

    对于数组

     

    • 数组本质上就是在堆内存中一系列地址连续且空间大小相等的存储空间(变量),每一个存
    储空间用来存储数据(基本,引用)
    • 数组是在堆内存中存储,称之为是一个对数对象,并且在堆内存中存储的数据都有 默认初始 化 的流程。
    所以数组创建之初,每一个存储空间里面都会被 JVM 初始化该数据类型对应的零值。
    • 数组的地址是连续的,所以通过公式:An=A1+(n-1)*d可以快速访问到其他的元素,所以对于
    • 数组而言查找元素比较快的。将元素的真实物理地址转换成对应的角标获取元素。
    • 如何来调用数组呢?通过一个变量存储该数组在堆内存当中的首元素的地址。 当数组一旦定义出来,其长度不可变,存储空间的内容是可变的 所以我们在定义数组的时候,要么把长度固定,要么直接输入相关的元素

    定义数组的方式

    // 创建一个指定长度且指定数据类型的一维数组,名称为数组名,虽然没有指定元素,但是会有默认值
    数据类型 [] 数组名 = new 数据类型 [ 长度 ];
    // 创建一个指定元素且指定数据类型的一维数组,名称为数组名,虽然有指定元素,还是有默认初始化这个步骤的!
    数据类型 [] 数组名 = new 数据类型 []{ 数据 1 , 数据 2 ,..., 数据 n };
    数据类型 [] 数组名 = { 数据 1 , 数据 2 ,..., 数据 n };
    • 对于一个数组来说 数组名代表了在栈中的变量空间 储存的是数组在堆内存中第一个元素的地址

    常见的数组操作

    • 数组遍历
    public class Sample { 
    public static void main(String[] args) {
     int[] arr = new int[]{1,2,3,4,5,6,7,8,9}; 
    //String str str.length()-函数 
    //int[] arr arr.length-属性
    for (int i = 0; i < arr.length; i++) { 
    arr[i] = arr[i] * 10;
     System.out.println(arr[i]); 
    }
    //通过角标遍历 可以在遍历的过程中对指定的元素进行修改 
    //foreach遍历 主要针对的是一些可迭代对象 Iterable
     /*
    for (数据类型 变量名 : 可迭代容器) {
     }*/
    for (int num : arr) {
     //num -> arr[i] num = num / 10;
     System.out.println(num); 
    }//这种遍历方式 只能获取元素,不能修改元素
    for (int i = 0; i < arr.length; i++) { 
    System.out.println(arr[i]);
             } 
        }
     }
    • 数组最值问题
    public class Sample { 
    public static void main(String[] args) {
     int[] arr = new int[]{3,6,8,2,9,4,5,1,7};
     int min = arr[0]; 
    int max = arr[0];
    for (int i = 1; i < arr.length; i++) { 
    if (arr[i] < min) { 
    min = arr[i];
                     }
    if (arr[i] > max) {
     max = arr[i]; 
                        }
     }System.out.println(max); 
        System.out.println(min);
         }
     }
    • 数组扩容问题
    public class Sample { 
    public static void main(String[] args) {
     int[] arr = new int[]{1,2,3,4,5};
    arr = add(arr,6); 
    for (int i = 0; i < arr.length; i++) { 
    System.out.println(arr[i]); 
        }
     }
    //在指定的数组arr中添加元素element
     public static int[] add(int[] arr, int element) {
     int[] newArr = new int[arr.length + 1];
    for (int i = 0; i < arr.length; i++) {
     newArr[i] = arr[i]; 
        }
    newArr[newArr.length - 1] = element; 
    return newArr; 
        } 
       }

     

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值