如何在Java中声明和初始化数组?
当前回答
有两种类型的阵列。
一维阵列
默认值的语法:
int[] num = new int[5];
或(不太优选)
int num[] = new int[5];
给定值的语法(变量/字段初始化):
int[] num = {1,2,3,4,5};
或(不太优选)
int num[] = {1, 2, 3, 4, 5};
注意:为了方便起见,最好使用int[]num,因为它清楚地告诉您在这里讨论的是数组。否则没有区别。一点也不。
多维数组
公告
int[][] num = new int[5][2];
Or
int num[][] = new int[5][2];
Or
int[] num[] = new int[5][2];
初始化
num[0][0]=1;
num[0][1]=2;
num[1][0]=1;
num[1][1]=2;
num[2][0]=1;
num[2][1]=2;
num[3][0]=1;
num[3][1]=2;
num[4][0]=1;
num[4][1]=2;
Or
int[][] num={ {1,2}, {1,2}, {1,2}, {1,2}, {1,2} };
杂乱阵列(或非矩形阵列)
int[][] num = new int[5][];
num[0] = new int[1];
num[1] = new int[5];
num[2] = new int[2];
num[3] = new int[3];
所以这里我们是显式定义列。另一种方式:
int[][] num={ {1}, {1,2}, {1,2,3,4,5}, {1,2}, {1,2,3} };
用于访问:
for (int i=0; i<(num.length); i++ ) {
for (int j=0;j<num[i].length;j++)
System.out.println(num[i][j]);
}
或者:
for (int[] a : num) {
for (int i : a) {
System.out.println(i);
}
}
杂乱数组是多维数组。有关说明,请参阅官方java教程中的多维数组详细信息
其他回答
用于使用0以外的默认值进行初始化:
var arr = new int[1000];
Arrays.fill(arr, 1);
下面显示了数组的声明,但未初始化数组:
int[] myIntArray = new int[3];
下面显示了数组的声明和初始化:
int[] myIntArray = {1,2,3};
现在,下面还显示了数组的声明和初始化:
int[] myIntArray = new int[]{1,2,3};
但第三个显示了匿名数组对象创建的属性,该属性由引用变量“myIntArray”指向,因此如果我们只写“newint[]{1,2,3};”,那么这就是如何创建匿名数组对象。
如果我们只写:
int[] myIntArray;
这不是数组的声明,但以下语句使上述声明完成:
myIntArray=new int[3];
另一种声明和初始化ArrayList的方法:
private List<String> list = new ArrayList<String>(){{
add("e1");
add("e2");
}};
使用局部变量类型推断,您只需指定一次类型:
var values = new int[] { 1, 2, 3 };
Or
int[] values = { 1, 2, 3 }
要创建类对象的数组,可以使用java.util.ArrayList.来定义数组:
public ArrayList<ClassName> arrayName;
arrayName = new ArrayList<ClassName>();
为数组赋值:
arrayName.add(new ClassName(class parameters go here);
从阵列中读取:
ClassName variableName = arrayName.get(index);
注:
variableName是对数组的引用,这意味着操纵variableName将操纵arrayName
对于循环:
//repeats for every value in the array
for (ClassName variableName : arrayName){
}
//Note that using this for loop prevents you from editing arrayName
for循环,允许您编辑arrayName(常规for循环):
for (int i = 0; i < arrayName.size(); i++){
//manipulate array here
}
推荐文章
- Eclipse调试器总是阻塞在ThreadPoolExecutor上,没有任何明显的异常,为什么?
- Java生成两个给定值之间的随机数
- 如何有效地从数组列表或字符串数组中删除所有空元素?
- 比较JUnit断言中的数组,简洁的内置方式?
- 数组到哈希Ruby
- codestyle;把javadoc放在注释之前还是之后?
- 如何在Spring中定义List bean ?
- 将Set<T>转换为List<T>的最简洁的方法
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用Java重命名文件
- URL从Java中的类路径加载资源
- .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?
- Hibernate中不同的保存方法之间有什么区别?
- Java 8流和数组操作
- 在javascript中从平面数组构建树数组