数组基础
介绍
存储同种数据类型的有序集合,本质是对象,存在于堆。每一个数据称作元素,元素通过索引(下标)来访问。
特点:一旦创建,长度固定。可存储基本和引用数据类型。
数组是对象(属于引用类型),元素类似成员变量。
数组声明
声明方式:type[] xxx
【推荐】或者type xxx[]
。
声明的时候没有实例化任何对象,数组也并没有真正被创建,只有在实例化数组对象时,JVM才分配空间。构造数组,必须指定长度。
示例:
package com.itcode.demo;
/**
* @author: 成都码到功成学员
* @description:
* 数组
*/
class ArrUser{
private int id;
private String name;
/**
* @param id
* @param name
*/
public ArrUser(int id, String name) {
super();
this.id = id;
this.name = name;
}
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
}
public class TestArray {
public static void main(String[] args) {
// 基本数据
int[] arr = new int[10];
// 数组赋值
for (int i = 0; i < arr.length; i++) {
arr[i] = i*10;
}
// 数组遍历
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 引用类型这里会在内存创建四个对象,会把三个ArrUser对象的地址值给数组对象。
ArrUser[] au = new ArrUser[3];
au[0] = new ArrUser(11, "成都");
au[1] = new ArrUser(12, "成都码到功成");
au[2] = new ArrUser(13, "码到功成");
for (int i = 0; i < au.length; i++) {
System.out.println(au[i].getId() + ":" + au[i].getName());
}
}
}
效果:

数组初始化
声明方式:type[] xxx
【推荐】或者type xxx[]
。
声明的时候
数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化
静态初始化:定义数组的同时为数组元素分配空间并赋值。
动态初始化:数组定义与为数组元素分配空间并赋值的操作分开
默认初始化:定义数组的同时为数组元素分配空间并分配默认值。
示例:
package com.itcode.demo;
/**
* @author: 成都码到功成学员
* @description:
* 数组初始化方式
*/
public class TestArray2 {
public static void main(String[] args) {
// 数组的初始化方式总共有三种:静态初始化
int[] arr = {1, 2, 3};
// 数动态初始化
int[] arr1 = new int[2];
arr1[0] = 10;
arr1[1] = 11;
// 默认初始化
int[] arr2 = new int[2]; // 初始化数组并分配默认值,分配默认值的形式与成员变量类似。
}
}
数组遍历
分为普通遍历和for-each遍历。
for-each/增强for循环不能修改数组元素的值,不涉及索引(下标)的操作。
示例:
package com.itcode.demo;
/**
* @author: 成都码到功成学员
* @description:
* 数组遍历
*/
public class TestArray3 {
public static void main(String[] args) {
String[] arr = {"成都", "码到", "功成"};
// 普通for循环
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 增强/for-each循环 只能读取值,不能修改值。
for (String s : arr) {
System.out.println(s);
}
}
}
效果:

Last updated
Was this helpful?