今天咱们说一下java里面的数组,数组在编程语言里的意思,至关于离散数学里面的集合,其意义几乎彻底同样,只有一点区别,离散里有无穷集合,比 如,实数集,可是在java里是不存在无穷集合的。在java里,数组就是一些数据的集合。做为咱们这些菜鸟,大多数状况下见到的数组,其中的数据都属于 同一类型。少数状况下不属于同一类型,那颇有可能发生了多态现象,并且在访问数组元素的方法时,极可能产生了动态绑定,这些咱们之后再说。java
好了,让咱们目前先认为数组里的元素都属于同一类型。那么,怎样声明以及初始化一个数组呢?程序员
声明一个数组有两种常见的形式:编程
1. 类型名[] 数组名数组
2.类型名 数组名[]
让咱们来举个例子吧,好比咱们想声明一个名字为int_array的整型数组,那么就应该是这样:int[] int_array,或者这样:int int_array[]。 同理,String[] sarray 咱们就有了一个名为sarray的字符串数组。double[] darray 咱们就有了一个名为darray的浮点型数组。有的程序员喜欢第二种声明方式,而本人则喜欢第一种声明方式,由于第一种声明方式明确的告诉了咱们那是一个 数组,并且后面紧跟数组名,分的很清楚。何况,第二种方式更像C++,我本人比较不一样意程序员把一个程序语言的习惯带到别的程序语言中,尽管有时候这样也 不会出现语法错误。编程语言
有一点须要注意,那就是,声明了一个数组,仅仅是声明,你仅仅是有了这么一个名称而已,你能够认为计算机为你的这个数组开辟了一个新的内存地址,但里面没 有任何东西。因为没有初始化,因此你的这个数组如今是徒有其表,若是你在声明以后,没有初始化就想立刻使用这个数组,java就会报错,好比这样:测试
咱们看到,这个程序没法经过编译,观察错误信息,是这样的:variabl a might not have been initialized,就是说,变量a也许尚未被初始化。咱们知道,不是也许,真的就没有初始化。其实不光是数组,任何一个数据,若是你只是声明,那 是不能直接使用的。blog
好了,下面咱们来看看,如何初始化一个数组呢?初始化数组常见的有以下方式:内存
1. 数组名 = new 类型名[数组长度] (此数组已经被声明过)字符串
数组名 = {数据1, 数据2, 数据3, ......, 数据n} (此数组已经被声明过)数学
数组名 = new 类型名[]{数据1, 数据2, 数据3, ......, 数据n} (此数组已经被声明过)
2. 类型名[] 数组名 = new 类型名[数组长度] (声明和初始化一块儿进行)
类型名[] 数组名 = {数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一块儿进行)
类型名[] 数组名 = new 类型名[]{数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一块儿进行)
3. 类型名 数组名[] = new 类型名[数组长度] (声明和初始化一块儿进行)
类型名 数组名[] = {数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一块儿进行)
类型名 数组名[] = new 类型名[]{数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一块儿进行)
4. 在已经声明过数组的前提下,使用循环或者其余操做来给数组初始化或者赋值。
总结一下,最后一种,咱们暂且不提,而前三种形式,其实就是,初始化数组的时候,等号左边有三种格式,等号右边也有三种格式。对于数组来讲,最多见的使用 方式是这样的:类型名[] 数组名 = new 类型名[数组长度],好比说:double[] floatarray = new double[100],这样咱们就声明并初始化了一个长度为100,名字为floatarray的double型数组。
然而,若是咱们以不一样的方式初始化一个数组,数组里所含的内容是如何的呢?若是只是给出了数组的长度,而并无显示的给出数组中的数据,那么,若是数组类 型是double,那么里面的数都是0.0,若是数组类型是int,那么里面的数据都是0,若是数组类型是String,那么里面的数据都是null(空 的意思),若是数组类型是boolean,那么里面的数据都是false。可是若是显示的给出了数据,那么咱们不须要给出数组长度,java将自动得到数 组长度,并且里面的数据也都已经有了,咱们看一下下面这段测试的程序:
咱们看到,除了最后一个外,其余几个数组的内容,都有java按照默认方式进行了初始化,看起来彷佛最后一种方式更好,可是实际上,最后一种方式并 不经常使用,由于通常里说,数组在刚开始定义的时候其内容并不肯定,每每是须要在程序中动态的进行赋值,因此,让java给自动赋值,实际上只是走走形式,让 这个数组可以使用而已。
好了,今天咱们讲了数组的声明以及初始化的基础知识,之后咱们会讲数组的操做。但愿各位初学者和本菜鸟一块儿努力练习,共同进步。