数组最常用的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值。访问数组元素都是通过在数组引用变量后紧跟一个方括号([]),方括号里是数组元素的索引值,这样就可以访问数组元素了。访问到数组元素后,就可以把一个数组元素当成一个普通变量使用了,包括为该变量赋值和取出该变量的值,这个变量的类型就是定义数组时使用的类型。

Java语言的数组索引是从0开始的,也将就是说,第一个数组元素的索引值为0,最后一个数组的索引值为数组长度减1。下面代码示范了输出数组元素的值,以及为指定数组元素赋值:

//输出objArr数组的第二个元素,将输出字符串“php”

System.out.println(objArr[1]);

//为objArr2的第一个数组元素赋值

objArr2[0] = "String";

如果访问数组元素时指定的索引值小于0,或者大于等于数组的长度,编译程序不会出现任何错误,但运行时会出现异常:java.lang.ArrayIndexOutOfBoundsException:N(数组索引越界异常),异常信息后的N就是程序员试图访问的数组索引。

下面的代码试图访问的数组元素索引值等于数组长度,将引发数组索引越界异常。

public class ArrError{

public static void main(String[] args){

int[] arr = {1,2};

System.out.println(arr[2]);

}

}

所有的数组都提供了一个length属性,通过这个属性可以访问到数组的长度,一旦获得了数组的长度,就可以通过循环来遍历该数组的每个数组元素。下面代码示范了使用for循环输出数组中每个元素的值:

public class ArrDemo{

public static void main(Sring[] args){

int[] arr = new int[5];

for(int i = 0; i<arr.length; i++){

System.out.println(arr[i]);

}

}

}

执行上面的代码将输出5个0,因为arr数组执行的是默认初始化,数组元素是int类型,系统为int类型的数组元素赋值为0.

下面的代码示范了为动态初始化的数组元素进行赋值,并通过循环的方式输出每个数组元素。

public class ArrDemo2{

public static void main(String[] args){

String[] arr = new String[4];

arr[0] = "兄弟连IT教育";

arr[1] = "让学习成为一种习惯";

for(int i = 0; i<arr.length; i++){

System.out.println(arr[i]);

}

}

}

上面代码将先输出字符串“兄弟连IT教育”和“让学习成为一种习惯”,然后输出两个null,因为arr使用了静态初始化,系统为所有数组元素都分配了一个null作为初始值,后来程序又为前两个元素赋值,所以看到了这样的程序输出结果。

从上面的代码中不难看出,初始化一个数组后,相当于同时初始化了多个相同类型的变量,通过数组元素的索引就可以自由访问这些变量(实际上都是数组元素)。使用数组元素与使用普通变量并没有什么不同,一样可以对数组元素进行赋值,或者取出数组元素的值。

最新文章

  1. loadrunner (一)如何查看分析、报告结果
  2. 百度ue富文本编辑器setContent方法报错初始化加载内容失败解决办法
  3. AWS 之Load Balance篇
  4. 【开源】封装HTML5的localstorage
  5. A Simple Math Problem(HDU 1757 构造矩阵)
  6. RAC(ReactiveCocoa)使用方法(二)
  7. [Codeforces 864E]Fire
  8. AngualrJS之服务器端通信
  9. ionic常见问题及解决方案
  10. Django后端向前端直接传html语言防止转义的方法(2种)
  11. Unity Shader Graph 小功能实现(一)边缘发光
  12. LCA学习笔记
  13. 数据库索引的数据结构b+树
  14. Maven(五)Eclipse配置Maven插件
  15. Suricata规则编写——常用关键字
  16. cf1144G 将串分解成单调递增和递减子串(贪心)
  17. django配置setting文件
  18. 轻型DNS服务器dnsmasq
  19. 初始Hive
  20. [Java][读书笔记]多线程编程

热门文章

  1. Spring注解--实现applicationContext.xml效果
  2. Python的map方法的应用
  3. HTTP 请求夹带(smuggling)攻击
  4. Samba安装及配置
  5. 论文阅读:EGNet: Edge Guidance Network for Salient Object Detection
  6. Python的标准库介绍与常用的第三方库
  7. 阿里钉钉技术分享:企业级IM王者——钉钉在后端架构上的过人之处
  8. 理解并运用TP5.1-Facade
  9. SSH框架之Hibernate第一篇
  10. js实现post方式的异步请求