array的初始化
来源:互联网 发布:知乎 冯大辉 离职 编辑:程序博客网 时间:2024/04/20 04:54
int[] a1;
int[] a1 = { 1, 2, 3, 4, 5 };
程序编写期间,如果不知道在自己的数组里需要多少元素,那么又该怎么办呢?此时,只需简单地用new 在数组里创建元素。在这里,即使准备创建的是一个基本数据类型的数组,new 也能正常地工作(new 不会创建非数组的基本类型):
//: ArrayNew.java
// Creating arrays with new.
import java.util.*;
public class ArrayNew {
static Random rand = new Random();
static int pRand(int mod) {
return Math.abs(rand.nextInt()) % mod + 1;
}
public static void main(String[] args) {
int[] a;
a = new int[pRand(20)];
prt("length of a = " + a.length);
for(int i = 0; i < a.length; i++)
prt("a[" + i + "] = " + a[i]);
}
static void prt(String s) {
System.out.println(s);
}
} ///:~
若操作的是一个非基本类型对象的数组,那么无论如何都要使用new。在这里,我们会再一次遇到句柄问题,因为我们创建的是一个句柄数组。
亦可用花括号封闭列表来初始化对象数组。可采用两种形式,第一种是Java 1.0 允许的唯一形式。第二种(等价)形式自Java 1.1 才开始提供支持:
//: ArrayInit.java
// Array initialization
public class ArrayInit {
public static void main(String[] args) {
Integer[] a = {
new Integer(1),
new Integer(2),
new Integer(3),
};
// Java 1.1 only:
Integer[] b = new Integer[] {
new Integer(1),
new Integer(2),
new Integer(3),
};
}
} ///:~
数组初始化的第二种形式(Java 1.1 开始支持)提供了一种更简便的语法,可创建和调用方法,获得与C 的“变量参数列表”(C 通常把它简称为“变参表”)一致的效果。这些效果包括未知的参数(自变量)数量以及未知的类型(如果这样选择的话)。由于所有类最终都是从通用的根类Object 中继承的,所以能创建一个方法,令其获取一个Object 数组,并象下面这样调用它:
//: VarArgs.java
// Using the Java 1.1 array syntax to create
// variable argument lists
class A { int i; }
public class VarArgs {
static void f(Object[] x) {
for(int i = 0; i < x.length; i++)
System.out.println(x[i]);
}
public static void main(String[] args) {
f(new Object[] {
new Integer(47), new VarArgs(),
new Float(3.14), new Double(11.11) });
f(new Object[] {"one", "two", "three" });
f(new Object[] {new A(), new A(), new A()});
}
} ///:~
- Array的初始化(8)
- array的初始化
- Array数组声明初始化的一些写法
- Swift中创建Array和Dictionary的初始化
- swift*数组Array的初始化以及增、删、改、遍历
- 用array辅助初始化set
- 初始化一个NULL-terminated array of strings in C (以NULL结尾的字符串数组)
- 初始化列表的初始化顺序
- 初始化(2)--初始化的方法
- Array[,]与 Array[][]的差异 (C#数组)
- 关于array与&array的区别说明
- array[0]和[array firstObject]的区别
- array+array与array_merge()的区别
- array.foreach() 和 array.map() 的用法
- Array的一个特性
- Array的Del属性
- Array数组的应用
- array& arrays的区别
- UVa 100
- 【专利小王子】审查意见通知书中外文对比文件的查找以及下载
- Python Virtualenv 使用(Windows)
- 【Spring源码】AOP部分源码解读
- 【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- array的初始化
- 求下一个更大的数
- Servlet请求路径相关方法汇总
- c++第一节之函数重载与缺省参数
- CV 2017-02-21
- 快速学sass(四)---变量
- jzoj 3631 【汕头市选2014】三角(triangle)
- 【HNOI2008】bzoj1009 GT考试
- 深入浅出DNS系列(七)- BIND