数组

一.数组的概述

1、什么是数组
    1)、数组是一个引用数据类型。
    2)、 数组中存放一组相同数据类型的数。
2、数组的存储结构
   1)、 数组在内存分配相同大小的连续空间存储数组中的数据。
    2)、数组的大小是固定不变的
   3)、 数组名中存放数组首元素的"地址"
    4)、数组中的元素有下标。下标从0开始。
    5)、访问某个元素格式为:数组名[下标]
    6)、数组长度属性:length。最大下标为:length-1
 6)、数组的下标不能超过数组的最大下标,否则引发异常:java.lang.ArrayIndexOutOfBoundsException;

二.数组的优缺点

1、数组的优点
数组在内存中连续存储数组元素,因此遍历数组元素的速度快
2、数组的缺点
随机添加和删除的速度慢
数组的大小固定。因此当存放的数据多于元素的大小的,需要对原数组进行扩容与复制

三.一维数组

1、创建一维数组的语法
数据类型  []数组名  = new 数据类型[大小];
2、分析基本类型一维数组和引用类型的一维数组的内存分析
2.1 基本类型一维数组中的每个元素存放的是值
     
2.2 引用类型数组中的每个元素存放是所引用对象的"地址"
     
3、一维数组的赋值方式
3.1 一个元素一个元素的赋值

1 int []a = new int[5];
2 a[0] = 20;
3 a[1] = 11;
4 a[2] = 12;
5 a[3] = 13;
6 a[4] = 14;

3.2  使用循环依次给每个元素录入值

Scanner input = new Scanner(System.in);
int []a = new int[5];
System.out.println("录入数组的值: ");
for(int i = 0;i<a.length;i++){
   System.out.println("输入第"+(i+1)+"个元素的值:");
   a[i] = input.nextInt();
}

3.3  在定义数组时直接赋值

1 //此方法赋值,必须写在一行
2 int []a = {1,23,45,62}
3 //new int[]{};此处的[]中不能写数组的大小
4 int []b = new int[]{21,22,32,54,26}; 

4、一维数组的遍历

1 //输出数组的值,使用循环
2 System.out.println("数组中的值为: ");
3 for(int i = 0;i<a.length;i++){
4    System.out.print(a[i]+"	");
5 }

四.main方法的args参数

1、使用java命令给main方法传参
java 类名 值1 值2 值3


2、在eclipse中运行程序时给main方法传参
2.1、点击工具栏中的Run按钮 

2.2、在弹出的界面中选择并点击Arguments

2.3、在弹出的Program arguments框里填写参数,多参数以空格隔开。

2.4 最后点击Run运行即可!运行的结果为:

五.一维数组的扩容和拷贝

1、使用System.arraycopy()方法
1)方法的原型:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

2)方法参数的含义:
-->src- 源数组。
-->srcPos- 源数组中的起始位置。
-->dest- 目标数组。
-->destPos- 目标数据中的起始位置。
-->length- 要复制的数组元素的数量。
2、使用Arrays.copyOf()方法实现数组的复制与扩容
1) 方法的原型
public static int[] copyOf(int[] original, int newLength)
2)方法的参数
-->original- 要复制的数组
-->newLength- 新数组的长度
3)方法的返回值
-->返回复制后的新数组
3、自己编写代码实现数组的复制与扩容

六.二维数组(代码中我们常用二维数组)

1、二维数组的概念
以一维数组为元素的一维数组。

2、二维数组的定义:
数据类型  [][] 数组名 = new 数据类型[大小][元素所引用的一维数组的大小] 

1 int [][]a = new int[3][2];
2 System.out.println(a.length); //数组的长度为3
3 System.out.println(a[0].length);// 数组中第一个元素所引用的一维数组的长度是2
4 System.out.println(a); //数组的首地址
5 System.out.println(a[0]);// 数组中第一个元素所引用的一维数组的首地址
6 System.out.println(a[0][0]);// 0
7 System.out.println(a[2][1]); // 0

3、二维数组如何赋值和遍历

 1 int [][]a = new int[3][2];
 2 a[0][0] = 20;
 3 a[0][1] = 11;
 4 a[1][0] = 12;
 5 a[1][1] = 13;
 6 a[2][0] = 14;
 7 a[2][1] = 15;
 8 //输出二维数组中的数据
 9 for(int i = 0;i<a.length;i++){
10    System.out.println("第"+(i+1)+"个元素的值:");
11    for(int j=0;j<a[i].length;j++){
12       System.out.println(a[i][j]+"	");
13    }
14    System.out.println("
=============");
15 }
原文地址:https://www.cnblogs.com/wangzhengyu/p/8547819.html