Array(数组)

数组的概述

数组是存储在一个连续的内存块中的元素集合。数组中的每个元素必须是相同的数据类型,并且通过索引进行区分。数组中的第一个元素的索引为0。

数组是集合的一个特例(数组是连续的且其中的每个元素必须是相同的数据类型)

数组的创建

  • 声明一个对数组的引用;
    在Java中,数据要么是基础数据类型的,要么是一个引用类型。而数组不是八种基础数据类型之一,所以数组是引用类型。所以,一个数组需要一个引用来访问它,并且需要new关键字来初始化。

要声明一个数组引用,可以用中括号:
①元素数据类型 [ ] 变量名 初始值;(更符合我们平时编码习惯)
②元素数据类型 变量名 [ ] 初始值。

int [] sums;  //一个对int类型数组的引用
int sums [];  //一个对int类型数组的引用

使用new关键字初始化数组,并指定数组的大小,数组的大小在数组实例化时决定。将一个整数放在中括号中来指定数组的大小。

sums = new int[5];   一个长度为5 的数组

因为数组必须在连续的内存空间中,所以在内存初始化分配后,数组的大小就不能改变了。如果数组的大小5太小了,那么就必须初始化一个新的更大的数组,老的数组就被垃圾回收了。

数组的特点

  • 数组中间只能存放相同类型的数据;
  • 数组定义好了之后,内存中元素的存放是连续的;
  • 数组的大小,需要在定义的时候,就固定好,一旦确定,将无法再次修改。

数组的初始化

在Java中,我们可以用一条语句声明一个数组引用,实例化一个数组,并且填充数组元素。这个过程称为数组初始化,它对创建一个包含已知数据的小数组是很有用的。

数组初始化程序在创建数组时,不需要使用new关键字。数组中的元素使用大括号列出,元素和元素之间用逗号分隔开。

int [] odds = {1, 2, 3, 7};    //初始化一个有4个int类型元素的数组

注意

数组初始化程序只能用在声明新数组引用时。例如,如下的语句是一个有效的数组初始化程序的用法:

String [] provinces= {"四川省", "河南"};

但是,在一条语句中声明引用,而在另一条语句中将引用赋值给一个初始化程序是无效的:

String [] provinces;
provinces= {"四川省", "河南"};        //编译不能通过

数组初始化程序只能在将其赋值给一个新声明的数组引用时使用,并且必须在一条语句内完成。

多维数组

在Java中,我们还可以创建多维的数组。与一维数组一样,多维数组也是对象,需要一个引用。该引用是在数据类型和变量名之间用多个中括号来声明的。

int [] []  sums;   //这为一个内部元素为int类的二维数组
int[ ] [ ] [ ] c ;  // 这为一个内部元素为int类的三维数组
       //......以此类推
public static void main(String[]params){
  System.out.println("初始化一个二维数组!");
  int[][]execl = new int[5][5];
//(0,0)代表二维数组,起始位置
  for(int i = 0;i<5;i++){
    for(int j = 0;j<5;j++){
      execl[i][j]=i*j;


}
}
}

二维数组其实就是一个存放一维数组的数组

数组的复制

因为数组的大小是固定的,所以在使用数组时,经常不得不创建一个更大或更小的数组,然后将已存在的数组的内容复制到新的数组中。我们可以编写一个for循环将一个数组的内容复制给另一个。

public class ArrayCopyDemo {
    public static void main(String[] args) {
        int[] odds = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };
        System.out.println("** 第一次输出 **");
        for (int i = 0; i < odds.length; i++) {
            System.out.println("odds[" + i + "] = " + odds[i]);
        }
        System.out.println("** 第二次输出 **");
        int[] temp = odds;
        odds = new int[20];
        System.arraycopy(temp, 0, odds, 4, temp.length);
        for (int i = 0; i < odds.length; i++) {
            System.out.println("odds[" + i + "] = " + odds[i]);
        }
    }
}

Java文档工具javaDoc

javaDoc是Java三种注释方法之一。
与类的通用信息有关的注释直接出现在类声明之前,而与类的字段、方法或构造器有关的注释直接出现在类成员声明之前。此外,我们还可以使用如下javadoc标记之一来表述特定类型的注释信息:

  • @author:表示源代码的作者名称。
  • @depracated:表示随着程序版本的提升,当前类成员已经过期,仅为了保证兼容性依然存在,以此告之开发者不应再用这个API。
  • {@docRoot}:代表当前页面要输出到的针对于根目录的相对路径。
  • @exception:被方法所用,列出抛出的异常。
  • {@link 包.类#成员的链接文字}:创建一个对特定类成员的链接。
  • {@linkplain 包.类#成员的链接文字}:如{@link}相同,但是用纯文本字体代替了代码字体。
  • @param:用于描述方法的形式参数。
  • @return:用于描述方法的返回值。
  • @see:创建一个“参见”XX条目的链接,如类、方法、变量等。
  • @since:描述成员存在或改变时的版本号。
  • @serial、@serialField和@serialData:用于串行化用途。
  • @throws:与@exception标记相同。
  • {@value}:用于显示常量静态字段的值。
  • @version:描述类的软件版本。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值