黑马程序员技术交流社区

标题: Java数组 [打印本页]

作者: lilongbin2016    时间: 2016-12-12 22:30
标题: Java数组
v数组是存放多个单一元素的容器。数组有长度,如下图的数组长度为10,则可以放下10个元素,每个元素有自己的索引。



1.声明数组

类型[] 或 []类型 数组变量名

如int[] ints; 或 []String strs;



2.初始化数组

方式1:显示初始化(必须结合声明数组一起使用)

            类型[] 或 []类型 数组变量名 = {元素1,...,元素n};

方式2:系统默认初始化

            类型[] 或 []类型 数组变量名 = new 类型[长度] 或 new [长度]类型

            数组变量名 = new 类型[长度] 或 new [长度]类型

       int[] ints1 = { 1, 2, 3 }; // 方式1

       int[] ints2 = new int[3]; // 方式2

       int[] ints3;
       ints3 = new int[3] // 方式2

       int[] ints4;
       ints4 = { 1, 2, 3 } // 错误,显示初始化必须结合数组声明一起使用


3.获取数组元素(获取值或设置值)

数组变量名[下标]

数组下标从0开始,最大下标是数组长度-1;超出小标范围的访问报数组越界异常。

获取到了数组元素后,其实就获取到的值

你还可以将它重定义值

       int[] ints = { 1, 2, 3 }; // 声明并初始化数组
       System.out.println(ints[0]); // 获取数组第一个元素,打印1
       ints[0] = 0; // 修改数组第一个元素的值
       System.out.println(ints[0]); // 获取数组第一个元素,打印0
4.数组长度属性length

       数组变量名.length

       int[] ints = { 1, 2, 3 }; // 声明并初始化数组
       int max = ints.length - 1; // 获取数组的最大下标
       ints[max] = 4; // 修改数组最后一个元素的值,修改成4
      
// 最大下标是2,这里报异常java.lang.ArrayIndexOutOfBoundsException
       ints[3] = 1;



1)  不能在声明时指定数组长度,int[5] ints是错误的,数组长度在初始化时指定。



5.多维数组

可以看做是以数组为元素的数组。以二维数组举例如下:

       int[][] ints1 = {{1},{1,2,3},{3,4}}; // 方式1
// ints1[0]是一个长度为1的一维数组;ints1[1]是一个长度为3的一维数组...

       int[][] ints2 = new int[3][5]; // 方式2
// ints2的每一个元素,都是一个长度为5的一维数组

       int[][] ints3 = new int[3][]; // 方式2,从低维到高维的顺序初始化
       ints3[0] = new int[1];
       ints3[1] = new int[3];
       ints3[2] = new int[2];
// ints3[0]是一个长度为1的一维数组,ints3[1]是一个长度为3的一维数组...


1)  多维数组的声明和初始化,应该按高维到低维的顺序进行

int[][] ints = new int[][3]; // 错误



6.数组的拷贝

拷贝方法:System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)



7.遍历数组

int[] src = { 1, 2, 3 };
int[] dest = new int[3];
System.arraycopy(src, 0, dest, 0, src.length);

for (int i = 0; i < dest.length; i++) {
       System.out.println("当前元素:" + dest[i] + ",下标是:" + i);
}

for (int m:dest) {
       System.out.println("当前元素:" + m + ",无法直接获得下标");
}

8.Arrays数组工具类

比较数组是否相等:Arrays.equals (Arrays.deepEquals用于多维数组的比较)

填充数组:Arrays.fill

数组排序:Arrays.sort

已排序数组中查找:Arrays.binarySearch()

字符串化:Arrays.toString

转化为List:Arrays.asList

作者: 1985206835long    时间: 2016-12-12 23:50
我来看一看
作者: lilongbin2016    时间: 2016-12-13 10:40
多多指教
作者: 1985206835long    时间: 2016-12-14 22:41
支持顶一个!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2