精华内容
下载资源
问答
  • Java声明数组

    千次阅读 2019-07-17 10:37:44
    Java可以用下面两种形式声明数组 int[] a; 或 int a[]; 大多数Java应用程序员喜欢用第一种风格,以为它将类型 int[](整型数组)与变量名分开了。

    Java可以用下面两种形式声明数组

    	int[] a;
    

    	int a[];
    

    大多数Java应用程序员喜欢用第一种风格,以为它将类型 int[](整型数组)与变量名分开了。

    展开全文
  • 指定长度:int[] arr = new int[3] 直接初始化:int[] arr = {1,2,3}
    1. 指定长度:int[] arr = new int[3]
    2. 直接初始化:int[] arr = {1,2,3}
    展开全文
  • Java数组的定义与使用(一)

    万次阅读 多人点赞 2018-09-01 00:05:13
    | 声明数组: | 数组类型 数组名称[] = nu ll ; | | | 数组类型 [] 数组名称 = null ; | | 开辟数组空间: | 数组名称 = new` 数组类型[长度]; | 那么当数组开辟空间之后,就可以采用如下的方式的操作: ...

    数组的基本概念

    如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下:

    int i1, i2, i3, ... i100;
    

    但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次。

    其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配,而数组的定义语法有如下两类。

    • 数组动态初始化:
      • 声明并开辟数组:
        • 数据类型 [] 数组名称 = new 数据类型[长度];
        • 数据类型 [] 数组名称 = new 数据类型[长度];
      • 分布进行数组空间开辟(实例化)
        | Tables | Are |
        | ------------- |:-------------?
        | 声明数组: | 数组类型 数组名称[] = null; | | | 数组类型 [] 数组名称 =null; | | 开辟数组空间: | 数组名称 =new` 数组类型[长度]; |

    那么当数组开辟空间之后,就可以采用如下的方式的操作:

    • 数组的访问通过索引完成,即:“数组名称[索引]”,但是需要注意的是,数组的索引从0开始,所以索引的范围就是0 ~ 数组长度-1,例如开辟了3个空间的数组,所以可以使用的索引是:0,1,2,如果此时访问的时候超过了数组的索引范围,会产生java.lang.ArrayIndexOutOfBoundsException 异常信息;
    • 当我们数组采用动态初始化开辟空间后,数组里面的每一个元素都是该数组对应数据类型的默认值;
    • 数组本身是一个有序的集合操作,所以对于数组的内容操作往往会采用循环的模式完成,数组是一个有限的数据集合,所以应该使用 for 循环。
    • Java 中提供有一种动态取得数组长度的方式:数组名称.length;

    范例: 定义一个int型数组

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = new int[3]; /*开辟了一个长度为3的数组*/
    		data[0] = 10; // 第一个元素
    		data[1] = 20; // 第二个元素
    		data[2] = 30; // 第三个元素
    		for(int x = 0; x < data.length; x++) {
    			System.out.println(data[x]); //通过循环控制索引
    		}
    	}
    }
    

    数组本身除了声明并开辟空间之外还有另外一种开辟模式。

    范例: 采用分步的模式开辟数组空间

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null; 
    		data = new int[3]; /*开辟了一个长度为3的数组*/
    		data[0] = 10; // 第一个元素
    		data[1] = 20; // 第二个元素
    		data[2] = 30; // 第三个元素
    		for(int x = 0; x < data.length; x++) {
    			System.out.println(data[x]); //通过循环控制索引
    		}
    	}
    }
    

    但是千万要记住,数组属于引用数据类型,所以在数组使用之前一定要开辟控件(实例化),如果使用了没有开辟空间的数组,则一定会出现 NullPointerException 异常信息:

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null; 
    		System.out.println(data[x]);
    	}
    }
    

    这一原则和之前讲解的对象是完全相同的。

    数组在开发之中一定会使用,但是像上面的操作很少。在以后的实际开发之中,会更多的使用数组概念,而直接使用,99%情况下都只是做一个 for 循环输出。

    数组引用传递

    既然数组属于引用数据类型,那么也一定可以发生引用传递。在这之前首先来研究一下数组的空间开辟。

    范例: 观察一道程序

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null;
    		data = new int[3]; //开辟一个长度为3的数组
    		data[0] = 10;
    		data[1] = 20;
    		data[2] = 30;
    	}
    }
    

    新建数组变量

    那么既然说到了引用数据类型了,就一定可以发生引用传递,而现在的引用传递的本质也一定是:同一块堆内存空间可以被不同的栈内存所指向。

    范例: 定义一个程序

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = null;
    		data = new int[3]; //开辟一个长度为3的数组
    		int temp[] = null; //声明对象
    		data[0] = 10;
    		data[1] = 20;
    		data[2] = 30;
    		temp = data;  //int temp[] = data;
    		temp[0] = 99;
    		for(int i = 0; i < temp.length; i++) {
    			System.out.println(data[i]);
    		}
    	}
    }
    

    这里写图片描述

    引用传递分析都是一个套路。同一块堆内存被不同的栈内存所指向。

    数组静态初始化

    在之前所进行的数组定义都有一个明显特点:数组先开辟内存空间,而后再使用索引进行内容的设置,实际上这种做法都叫做动态初始化,而如果希望数组在定义的时候可以同时出现设置内容,那么就可以采用静态初始化完成。

    数组的静态初始化一共分为以下两种类型:

    Tables Are
    简化格式: 数据类型 数组名称 = {值, 值,…}
    完整格式: 数据类型 数组名称 = new 数据类型[] {值, 值,…}

    范例: 采用静态初始化定义数组

    public class ArrayDemo {
    	public static void main(String args[]) {
    		int data[] = {1, 2, 4, 545, 11, 32, 13131, 4444};
    		for(int i = 0; i < data.length; i++) {
    			System.out.println(data[i]);
    		}
    	}
    }
    

    在开发之中,对于静态数组的初始化强烈建议使用完整语法模式,这样可以轻松地使用匿名数组这一概念。

    public class ArrayDemo {
    	public static void main(String args[]) {
    		System.out.println(new int[] {1, 2, 4, 545, 11, 32, 13131, 4444}.length);
    	}
    }
    

    以后使用静态方式定义数组的时候一定要写上完整格式。

    数组最大的缺陷:长度固定。

    二维数组

    在之前所使用的数组发现只需要一个索引就可以进行访问,那么这样的数组实际上非常像一个数据行的概念。

    索引 0 1 2 3 4 5 6 7 8
    内容 12 23 44 56 90 445 49 99 1010

    现在痛过一个索引就可以取得唯一的一个记录。所以这样的数组可以简单理解为一维数组,而二维数组本质上指的是行列集合,也如果要确定某一个数据需要行索引和列索引来进行定位。

    索引 0 1 2 3 4 5 6 7 8
    0 12 23 44 56 90 445 49 99 1010
    1 2 3 41 56 9 45 49 99 10

    如果要想确定一个数据则数据使用的结构是“数组名称[行索引][列索引]”,所以这样的结构就是一个表的结构。

    那么对二维数组的定义有两种声明形式:

    • 数组的动态初始化:数据类型 对象数组[][] = new 数据类型[行个数][列个数];
    • 数组的静态初始化:数据类型 对象数组[][] = new 数据类型[行个数][列个数]{{值, 值,…}, {值, 值,…},…};

    数组的数组就是二维数组。

    范例: 定义一个二维数组

    public class ArrayDemo {
    	public static void main(String args[]) {
    		//此时的数组并不是一个等列数组
    		int data[][] = new int[][] {
    			{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
    		//如果在进行输出的时候一定要使用双重循环,
    		//外部的循环控制输出的行数,而内部的循环控制输出列数
    		for(int i = 0; i < data.length; i++) {
    			for(int j = 0; j < data[i].length; j++) {
    				System.out.print("data[" + i + "][" + j + "]=" + data[i][j] + "、");
    			}
    			System.out.println();
    		}
    	}
    }
    

    由于输出麻烦,所以可以忽略了,在进行开发之中,出现二位数组的几率并不高。

    展开全文
  • java声明数组

    2015-11-23 19:25:37
    java声明数组问题描述:你是如何在java声明数组的。你可以进行用数组声明或者数组常量(注意:当你声明或者立即影响了变量,数组常量将不能再用来分配一个数组) 对于原始类型:int[] myIntArray = new int[3...

    在java中声明数组

    问题描述:

    你是如何在java中声明数组的。

    你可以进行用数组声明或者数组常量(注意:当你声明或者立即影响了变量,数组常量将不能再用来分配一个数组)
    对于原始类型:

    int[] myIntArray = new int[3];
    int[] myIntArray = {1, 2, 3};
    int[] myIntArray = new int[]{1, 2, 3};

    物件类,比如String类,也是相同的:

    String[] myStringArray = new String[3];
    String[] myStringArray = {"a", "b","c"};
    String[] myStringArray = new String[]("a", "b", "c");

    注意:
    1.数组常量

    //for a function return type is int[],you cannot return
    {1,2,3}
    //but you can return 
    new int[]{1, 2, 3};

    Stackoverflow链接:Declare array in Java?

    展开全文
  • Java数组可以声明为volatile以将任何数组声明为volatile,但是只有指向数组的引用会被volatile覆盖,对于单个数组元素的修改是不会被覆盖的 http://yuanlei.me/2017/11/17/can-we-make-array-volatile-in-java/ ...
  • java数组声明方式

    千次阅读 2018-12-27 18:13:40
    java声明数组的方式: 1. String [] hello1 = {1,2,3,4}; 2. String [] hello2 = new String[4]; 3. String [] hello3 = new String[]{1,2,3,4}; 代码如下: public static void main(String...
  • Java多维数组声明格式

    千次阅读 2019-04-20 22:49:42
    关于多维数组声明的形式你知道哪几种呢? 首先先上一个错误的例子: 这里arr9 - arr11在等式右边都错误的在中括号中加了数组大小,导致报错; 而arr11、arr12则是等式右边二维数组初始化时没有赋予初始大小导致报错...
  • java数组与对象数组

    2019-09-27 10:02:03
    java的数组声明不同于c/c++,java不允许在声明数组的方括号内指定数组元素的个数,若声明 int a[5]; 或者int [5] a ; 会导致语法错误。 正确的的数组声明应该是: int [ ] a,b; int a[ ],b[ ]; 特别的,当声明: int...
  • Java数组声明和初始化

    千次阅读 2015-11-26 12:23:23
    在c语言中,通常我们在声明...在java中,声明数组会有所不同,如 int[ ] a(或者int a[] ,推荐用第一种,因为第一种的语句更能体现java引用机制]),int[ ]是一个新的数据类型,int在java中是基本类型,int[ ]则是其对
  • Java —— 数组

    2020-07-07 09:26:12
    1、 声明数组 语法: 数据类型[ ] 数组名; 或者 数据类型 数组名[ ]; 其中,数组名可以是任意合法的变量名,如: 2、 分配空间 简单地说,就是指定数组中最多可存储多少个元素 语法: 数组名 = new 数据类型 [ ...
  • java数组声明格式

    2016-11-10 10:55:33
    Java数组定义: int[] 表示定义一个整数类型的数组。左边 int[] array属于应用类型存放在占内存中, 而堆内存中会开辟一条空间用于存储 new出来的对象,并把地址值 赋值给array; 数组在堆内存中存储时,是有索引...
  • Java对象数组

    千次阅读 多人点赞 2017-04-09 16:29:19
    java对象数组 其实在我看来 java 的 对象数组就类似于 C语言的 结构体数组,可能我理解的 有点错误,但是我感觉还是很像的。 java的对象数组初始化有两种: 动态初始化: 开辟之后的对象数组的内容都是null 值...
  • 动态数组是指,在声明数组变量之后,使用new运算符动态申请指定容量(存储单元个数)的数据存储空间;当数组不再被使用时,java将自动收回数组占用的存储空间。 每个数组变量都具有长度属性length,采用“数组变量...
  • Java中如何声明数组

    千次阅读 2017-03-05 21:45:58
    Java语言声明数组有两种形式,以一维数组为例: 数组类型  数组名  []; 这种方式是C语言书写习惯 数组类型  [] 数组名; 这种方式是Java书写习惯 数组的声明方法: 数组类型 [] 数组名 = {em1,em2,em3,…,emN};...
  • Java动态数组

    千次阅读 多人点赞 2018-07-18 10:38:44
    1.Java动态数组的用法详解  Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。 ...
  • java数组声明方式

    2019-09-14 11:46:47
    声明数组 声明数组的时候不能指定其长度(数组织元素的个数)。数组是一种引用类型的变量因此使用它定义一个变量时,仅仅表示定义了一个引用变量(类似于指针),引用变量还未指向任何有效的内存,所以定义数组时不...
  • Java——数组数组的使用 ...在数组中,当声明数组时(启用栈内存),就是在栈中创建一个指向堆内地址的变量a; 而在分配空间时(启用堆内存),就是在堆内分配一个连续空间,将空间的首地址(0x…开头的16进
  • java——数组

    2017-03-11 16:46:04
    //java数组 //数组对于每一个编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。 //java语言中提供的数组是用来存储固定大小的同类型元素。...//首先必须声明数组变量,才能在程序
  • 1.1.要声明一个数组,只需在类型后面加上&amp;amp;amp;amp;quot;[ ]&amp;amp;amp;amp;quot;即可;例如:String[] strArray; 2.初始化 2.1.方式一:String[] strArray = {new String(“a”), “b”};...
  • Java多维数组

    千次阅读 2017-03-22 09:14:19
    数组声明的每个维度的一对括号[]来声明多维数组。 例如,如下所示定义int类型的二维数组: int[][] table; Java 这里,table是一个引用变量,可以保存对int类型的二维数组的引用。下面创建具有三行和两列的...
  • java8处理数组 If a program needs to work with a number of values of the same data type, you could declare a variable for each number. For example, a program that displays lottery numbers: 如果程序...
  • 两种声明方式: 1、int[] array; 2、int array[]; 九种初始化方式: 1、int[] array = new int[数组长度]; 2、int[] array = {1, 2, 3, …, n}; 3、int[] array = new int[] {1, 2, 3, …, n}; 4、int array[] = ...
  • Java语法基本篇:java处理数组

    千次阅读 2016-06-13 23:15:12
    java处理数组
  • 1. int[][] arr = new int[m][n]; 在赋值时使用for循环 for(int i=0;i<m;i++){ for(int j=0;...若声明时省略n,赋值时须在内层循环中生成新一维数组 for(int i=0;i<m;i++){ arr[i] = new int[数量]; }
  • Java数组声明有两种,动态声明和静态声明。 1、静态声明 数据类型[] 变量名= {类型值1,类型值2,…}; ①声明一维数组: int[] arr = {1,2,3}; 也可以这样声明: int[] arr2= new int[] { 2, 3, 4, 1 }; ②声明二...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 320,583
精华内容 128,233
关键字:

java声明数组

java 订阅