int[] myIntArray = new int[3];
int[] myIntArray = {1, 2, 3};
int[] myIntArray = new int[]{1, 2, 3};
// Since Java 8. Doc of IntStream: https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html
int [] myIntArray = IntStream.range(0, 100).toArray(); // From 0 to 99
int [] myIntArray = IntStream.rangeClosed(0, 100).toArray(); // From 0 to 100
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).toArray(); // The order is preserved.
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).sorted().toArray(); // Sort
比如说班级 String ,是一样的:
String[] myStringArray = new String[3];
String[] myStringArray = {"a", "b", "c"};
String[] myStringArray = new String[]{"a", "b", "c"};
当您先声明数组,然后初始化它时,第三种初始化方法很有用。这里需要演员。
String[] myStringArray;
myStringArray = new String[]{"a", "b", "c"};
int[] intArray = new int[3];
intArray[0] = 1; // Array content is now {1, 0, 0}
初始化并向数组提供数据
int[] intArray = new int[]{1, 2, 3};
这一次没有任何必要提及框中括号的大小。即使是一个简单的变体:
int[] intArray = {1, 2, 3, 4};
长度为0的数组
int[] intArray = new int[0];
int length = intArray.length; // Will return length 0
类似于多维数组
int intArray[][] = new int[2][3];
// This will create an array of length 2 and
//each element contains another array of length 3.
// { {0,0,0},{0,0,0} }
int lenght1 = intArray.length; // Will return 2
int length2 = intArray[0].length; // Will return 3
在变量前使用方括号:
int[][] intArray = new int[2][3];
如果你在最后放一个框式支架,那绝对没问题:
int[] intArray [] = new int[2][4];
int[] intArray[][] = new int[2][3][4]
一些例子
int [] intArray [] = new int[][] {{1,2,3},{4,5,6}};
int [] intArray1 [] = new int[][] {new int[] {1,2,3}, new int [] {4,5,6}};
int [] intArray2 [] = new int[][] {new int[] {1,2,3},{4,5,6}}
// All the 3 arrays assignments are valid
// Array looks like {{1,2,3},{4,5,6}}
并非强制要求每个内部元素的大小相同。
int [][] intArray = new int[2][];
intArray[0] = {1,2,3};
intArray[1] = {4,5};
//array looks like {{1,2,3},{4,5}}
int[][] intArray = new int[][2] ; // This won't compile. Keep this in mind.
如果使用上述语法,则必须确保前进方向必须在方括号中指定值。否则就无法编译。一些例子:
int [][][] intArray = new int[1][][];
int [][][] intArray = new int[1][2][];
int [][][] intArray = new int[1][2][3];
另一个重要特征是协变的
Number[] numArray = {1,2,3,4}; // java.lang.Number
numArray[0] = new Float(1.5f); // java.lang.Float
numArray[1] = new Integer(1); // java.lang.Integer
// You can store a subclass object in an array that is declared
// to be of the type of its superclass.
// Here 'Number' is the superclass for both Float and Integer.
Number num[] = new Float[5]; // This is also valid
26条答案
按热度按时间piah890a16#
数组有两种基本类型。
静态数组:固定大小的数组(其大小应在开始时声明,以后不能更改)
动态数组:不考虑大小限制(纯动态数组在java中不存在。相反,最受鼓励的做法是列出清单。)
要声明整数、字符串、浮点等的静态数组,请使用下面的声明和初始化语句。
要使用动态功能,必须使用列表。。。列表是纯动态数组,不需要在开始时声明大小。下面是用java声明列表的正确方法-
wrrgggsh17#
在Java8中,您可以使用这样的东西。
eyh26e7m18#
如果要使用反射创建阵列,可以执行以下操作:
llew8vvj19#
以下显示了数组的声明,但数组未初始化:
下面显示了数组的声明和初始化:
现在,下面还显示了数组的声明和初始化:
但是第三个显示了匿名数组对象创建的属性,它由一个引用变量“myintarray”指向,因此如果我们只写“newint[]{1,2,3};”这就是匿名数组对象的创建方法。
如果我们只写:
这不是数组的声明,但下面的语句使上述声明完成:
cwtwac6a20#
有两种类型的数组。
一维阵列
默认值的语法:
或(不太喜欢)
给定值的语法(变量/字段初始化):
或(不太喜欢)
注意:为了方便起见,int[]num更可取,因为它清楚地表明您在这里讨论的是数组。否则没有区别。一点也不。
多维数组
声明
或
或
初始化
或
不规则阵列(或非矩形阵列)
所以我们在这里显式地定义列。
另一种方式:
用于访问:
或者:
不规则数组是多维数组。
有关说明,请参见官方java教程中的多维数组详细信息
yiytaume21#
例子:
或
例子:
7cwmlq8922#
另外,如果你想要更具动态性的东西,还有list接口。这样做的效果不太好,但更灵活:
9jyewag023#
可以使用数组声明或数组文字(但仅当您立即声明并影响变量时,数组文字不能用于重新分配数组)。
对于基本类型:
比如说班级
String
,是一样的:当您先声明数组,然后初始化它时,第三种初始化方法很有用。这里需要演员。
biswetbf24#
制作数组有两种主要方法:
对于空数组:
对于一个初始化的数组:
也可以创建多维数组,如下所示:
gywdnpxw25#
为Java8及更高版本声明和初始化。创建一个简单的整数数组:
为[-50,50]和双精度[0,1e17]之间的整数创建一个随机数组:
二序功率:
对于字符串[],必须指定构造函数:
多维数组:
eblbsuwk26#
这里有很多答案。我添加了一些技巧性的方法来创建数组(从考试的Angular 来看,知道这一点很好)
声明和定义数组
这将创建一个长度为3的数组。由于它包含一个基元类型int,所以默认情况下所有值都设置为0。例如,
在变量名前使用方括号[]
初始化并向数组提供数据
这一次没有任何必要提及框中括号的大小。即使是一个简单的变体:
长度为0的数组
类似于多维数组
在变量前使用方括号:
如果你在最后放一个框式支架,那绝对没问题:
一些例子
并非强制要求每个内部元素的大小相同。
如果使用上述语法,则必须确保前进方向必须在方括号中指定值。否则就无法编译。一些例子:
另一个重要特征是协变的
重要提示:对于引用的类型,数组中存储的默认值为null。