Java数据结构:数组

1.概述

数组是用于储存多个相同类型数据的集合。数组既可以存储基本数据类型,也可以存储引用数据类型。数组是一种最简单的数据结构,它占据一块连续的内存(即使在物理内存中不是连续的,在逻辑上肯定是连续的)并且顺序存储数据。

2. 数组的创建

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

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};

或

数据类型[] 数组名 = new 数据类型[数组长度];

第一种创建方式称为:静态初始化:显式指定每个数组元素的初始值。  

第二种创建方式称为:动态初始化:显式指定数组的长度。

这两种方式在创建的时候都指定了数组的长度,第一种方式数组的长度为元素个数的总数,第二种方式数组的长度在创建的时候就指定了。当一个对象使用关键字“new”创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说也是一样的,因为数组也是一个对象。内存中就会为数组开辟一段固定长度的内存,如下图所示:图片来自百度图片

因为数组有这样的数据结构,所以它有以下几种特性:

a. 一个数组占据的存储空间大小固定,不能改变
b. 所占据的存储空间是专用的,不能被其他信息占据
c. 所占据的存储空间是连续性的,中间不能间隔其他的信息
d. 数组中的各个元素可以用数组名和下标直接访问

3.一维数组 

int[] arr = {1, 2, 3, 4, 5};

一维数组在内存中是一段连续的内存,第一个元素下标为0 。一维数组的使用参考下面示例:

public class Test {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        // 打印所有数组元素
        for (int i = 0; i < arr.length; i++) {
            if (i != arr.length - 1) {
                System.out.print(arr[i] + ",");
            } else {
                System.out.println(arr[i]);
            }
        }
        // 计算所有元素的总和
        int total = 0;
        for (int i = 0; i < arr.length; i++) {
            total += arr[i];
        }
        System.out.println("Total is " + total);
        // 查找最大元素
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > max) max = arr[i];
        }
        System.out.println("Max is " + max);
    }
}

运行结果:

1,2,3,4,5
Total is 15
Max is 5

 

4. 二维数组

在Java中只有一维数组,二维数组是一个存放了数组的数组。

int arr[][] = {{1,2},{3,4,5,6},{7,8,9}};
public class Test1 {
    public static void main(String[] args) {
        int arr[][] = {{1,2,3},{4,5,6},{7,8,9}};
        for(int i=0; i<arr.length; i++){
            for(int j=0; j<arr[i].length; j++){
                System.out.print("["+i+"]"+"["+j+"]="+arr[i][j]+"  ");
            }
            System.out.println();
        }
    }
}

运行结果:

[0][0]=1  [0][1]=2  [0][2]=3  
[1][0]=4  [1][1]=5  [1][2]=6  
[2][0]=7  [2][1]=8  [2][2]=9

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值