【Java】Java_17 数组
数组
数组是一种数据类型,属于引用类型。
1.定义数组
type[] arrayName;
type arrayNmae[];
以上2种定义数组方式的区别:
type[] arrayName:语义强,可读性好(推荐使用)
type arrayName[]:语义差,可读性差
注意:定义数组时布恩那个指定数组的长度。
2.数组的初始化
静态初始化:初始化由程序员显示指定每个数组元素的数据类型,由系统决定数组的长度
动态初始化:初始化由程序员只指定数据长度,由系统为数组元素分配初始值
静态初始化的语法如下:
arrayName = new Type[]{element1,element2...element4...} 简化后写法: type[] arrayName = {element1,element2...element4...}
动态初始化:
arrayName = new type[length];
执行动态初始化时,程序员只需要指定数组的长度,即为每个数组元素指定所需的内存空间,系统将负责为这些元素分配初始值。指定初始值时,系统将按如下规则分配初始值。
- 数组元素的基本类型是基本类型种的整数类型(byte、short、int、long),则数组元素的值为0;
- 数组元素的基本类型是基本类型种的浮点类型(folat、double),则数组元素的值是0.0
- 数组元素的基本类型是基本类型种的字符类型(char),则数组元素的值是'\u0000'
- 数组元素的基本类型是基本类型种的布尔类型(boolean),则数组元素的值是false
- 数组元素的基本类型是引用类型(类、接口、数组),则数组元素的值是null
3.数组的使用
3.1 读取数组元素
定义一个数组,并打印数组中的第一个值
package com.oliver.test; public class TestArray {
public static void main(String[] args) {
//定义一个Object数组类型的变量,变量名为ObjArr
Object[] ObjArr;
//初始化数组变量,定义数组时所指定的数组元素的子类
ObjArr = new String[] {"jack","Alice"};
System.out.println(ObjArr[0]);
}
}
打印数组中的每个元素
package com.oliver.test; public class TestArray {
public static void main(String[] args) {
//定义一个Object数组类型的变量,变量名为ObjArr
Object[] ObjArr;
//初始化数组变量,定义数组时所指定的数组元素的子类
ObjArr = new String[] {"jack","Alice"};
//循环打印数组元素
for(int i=0;i<ObjArr.length;i++){
System.out.println(ObjArr[i]);
}
}
}
错误一:java.lang.ArrayIndexOutOfBoundsException: 10
错误源码:
package com.oliver.test; public class TestArray {
public static void main(String[] args) {
//定义一个Object数组类型的变量,变量名为ObjArr
Object[] ObjArr;
//初始化数组变量,定义数组时所指定的数组元素的子类
ObjArr = new String[] {"jack","Alice"};
System.out.println(ObjArr[10]);
}
}
错误分析:导致该错误的原因是因为需要打印的数组元素不存在(数组索引越界异常)
3.2 foreach循环
使用foreach循环,这种循环遍历无需获取数组和集合长度,无需根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素
语法:
for(type variableName : array | collection)
{
//variableName 自动迭代访问每个元素...
}
代码示意:
package com.oliver.test; public class TestForeach {
public static void main(String[] args) {
String[] s = {"张三丰","张无忌","张飞"};
for(String n : s){
System.out.println(n);
} }
}
【Java】Java_17 数组的更多相关文章
- java中数组的相关知识
1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[ ...
- Java基础——数组应用之StringBuilder类和StringBuffer类
接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...
- JSon_零基础_007_将JSon格式的"数组"字符串转换为Java对象"数组"
将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“n ...
- java将数组中的零放到末尾
package com.shb.java; /** * 将数组中的0放到数组的后边,然后原来的非零数的顺序不改变 * @author BIN * */ public class Demo2{ publ ...
- Java中数组的特性
转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...
- 在java 中,数组与 List<T> 类型的相互转换
在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...
- Java RGB数组图像合成 ImageCombining (整理)
/** * Java RGB数组图像合成 ImageCombinning (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * * 注意事项: * 1.本程序为java程序,同时感谢您花费 ...
- java对象数组
问题描述: java 对象数组的使用 问题解决: 数组元素可以是任何类型(只要所有元素具有相同的类型) 数组元素可以是基本数据类型 数组元素也可以是类对象,称这样的数组为对象数组.在这种情况下 ...
- Java中数组的初始化方式
Java中数组的初始化方式 初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...
- Java动态数组
其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList. ...
随机推荐
- c#读取LOG文件并解决读取提示被其他进程占用问题
c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件,在IO处理上遇到了无法操作的问题. 文件“C:\u_ex.log”正由另一进程使用,因此该进程无法访问该文件. u_ex.log是一个日 ...
- php使用gd库将文字转换成图片(转)
GD库是干什么用的呢!它是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. <?php header("Content-type: ...
- Sublime text3 插件ColorPicker(调色板)不能使用快捷键的解决方法
我的原因是:convertToUTF8和ColorPicker快捷键冲突,convertoUTF8的默认转换GBK的快捷键 和 ColorPicker打开调色板的快捷键都是ctrl+shift+c . ...
- Vmware vSphere常见问题及解决办法
Vmware vSphere常见问题及解决办法 日期:2012-6-29来源:51cto Vmware vSphere 12 1. 虚拟机文件被锁,无法正常 power on 故障状态: 启动虚拟 ...
- (2)三剑客之grep
1)grep和egrep定义grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行egrep:扩展的egrep,支持更多的正则表达式元字符2)命令格式语法:grep [选项] patt ...
- 二分图匹配【p2147】课程
Description n个学生去p个课堂,每一个学生都有自己的课堂,并且每个学生只能去一个课堂,题目要求能够安排每一个课堂都有人吗? Input 第一行是测试数据的个数, 每组测试数据的开始分别是p ...
- 【C++】const 常引用的用法
用法: const int & a; 定义了一个整型常引用变量a. 特点: 1.不能够通过常引用变量来修改其值,如: const int & a = 10; a = 12;//编译报错 ...
- 主键(PrimaryKey)
员工表中的每一行记录代表了一个员工,一般员工的名字就能唯一标识这一个员工,但 是名字也是有可能重复的,这时我们就要为每一名员工分配一个唯一的工号: 这样就可以通过这个工号来唯一标识一名员工了.当老板下 ...
- 【BZOJ 2333 】[SCOI2011]棘手的操作(离线+线段树|可并堆-左偏树)
2333: [SCOI2011]棘手的操作 Description 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边 ...
- 【找规律】Gym - 100923L - Por Costel and the Semipalindromes
semipal.in / semipal.out Por Costel the pig, our programmer in-training, has recently returned from ...