java引用数据类型-数组
来源:互联网 发布:linux下jdk怎么卸载 编辑:程序博客网 时间:2024/06/06 01:16
数组的定义
- 数组用于将相同类型的数据存储在连续的存储单元中;
- 可以通过指定数组的名称和长度来声明数组;
- 一旦声明数组的大小,就不能再修改;
- 数组元素通过数组名和索引来访问,索引从0开始;
数组可以是一维,也可以是多维。
在java中声明数组有如下方式(以整型数组为例):
//仅声明数组的引用,但没有分配内存空间 int[] arr; //声明数组的同时,根据指定长度分配内存,但是数组中没有值 int[] arr= new int[10]; //声明数组并分配内存,同时将其初始化 int[] arr2= new int[]{1,2,3,4,5}; //或者是 int[] arr2={1,2,3,4,5};
声明数组示例:
public class ArrayDemo{ public static void main(String[] args){ //声明整型数组的引用 int[] arr; //为数组引用在堆中分配内存 arr = new int[10]; //使用循环为数组元素赋值 for(int i=0;i<arr.length;i++){ arr[i]=i; } //将数组元素逐个输出到控制台 System.out.println(Arrays.toString(arr)); } }
关于数组长度
- 在java中,程序员可以不再关注数组的长度,数组自带的length属性将负责保管数组的长度
- java对数组下标越界情况强加约束
- 如果视图访问不在有效索引以内的元素,将会引发运行错误。(异常:数组下标越界)
比如:
int[] arr = new int[4]; System.out.println(arr[4]);
控制台抛出的运行时异常,如下图:
数组的赋值
- 在java中,语法上允许数组直接赋值给另一个数组,但实际得到的效果是两个数组引用指向同一块内存。
int[] arr1 = new int[]{2,4,6,8,10}; int[] arr2 = arr1; System.out.println("arr1的地址是:"+arr1+" arr2的地址是:"+arr2);
结果如图:
用图来说明的话,如下:
数组的复制
1.数组变量存储对数组的引用,复制该变量将产生同一数组的第二个引用。
//指向的是同一个地址 int[] a = new int[3]; int[] b = a;
2.真正复制一个数组需要用到clone方法。
//指向的是不同的地址 int[] a = new int[3]; int[] b = a.clone();
3.使用System.arraycopy()进行数组的复制
方法的参数说明:
System.arraycopy(from,fromstart,to,tostart,count);
- from:源数组
- fromstart:从源数组的那个位置开始复制,数组下标是从0开始的
- to:目标数组
- tostart:目标数组开始的位置
- count:复制的长度
案例:
将a数组复制到b数组中
int[] a={1,2,3,4}; int[] b=new int[3]; System.arraycopy(a, 0, b, 0, b.length);
定义多维数组
1.比如定义一个在第几行就有几列的多维数组,代码如下:
//申请一个二维数组,三行,列不确定 int[][] arr= new int[3][]; for(int i=0;i<arr.length;i++){ //定义第一行一列,第二行两列,第三行三列 arr[i]=new int[i+1]; }
2.比如定义一个3行4列的多维数组,代码如下:
//申请一个二维数组,三行,四列 int[][] arr= new int[3][4]; for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ //给第一行第一列赋值11,第一行第二列赋值12,以此类推 arr[i][j]=(i+1)*10+j+1; } } //循环输出结果 for(int[] num1:arr){ for(int num2:num1){ System.out.print(num2+" "); } System.out.println(); } /* 结果如下: 11 12 13 14 21 22 23 24 31 32 33 34 */
0 0
- java引用数据类型-数组
- Java引用数据类型之数组
- java引用数据类型之数组
- Java 4.0 java 引用数据类型之数组
- 引用数据类型---数组
- 黑马程序员-引用数据类型-数组
- Java引用数据类型
- java引用数据类型
- Java的引用数据类型
- java中引用数据类型
- java的引用数据类型
- JAVA中引用数据类型
- java中的引用数据类型
- java 引用数据类型
- Java数据类型和引用
- java中引用数据类型
- java的引用数据类型
- Java-引用数据类型转换
- 个人MYSQL操作记录
- CLR无法从COM 上下文*****转换为COM上下文*****,这种状态已持续60秒。
- Activity生命周期详解
- tensorflow安装(一)
- kettle数据同步
- java引用数据类型-数组
- PHP7扩展开发入门
- java-数组赋值
- Leetcode 438. Find All Anagrams in a String 找变位子串 解题报告
- 交叉编译(cross compile)的一些介绍
- 【洛谷 1016】 旅行家的预算
- list.addAll()是浅拷贝,如何实现list的深拷贝
- 看不懂的python矩阵处理
- Android api level对照表