int intArray[]; // Declaring an array
intArray = new int[20]; // Allocating memory to the array
// The below line is equal to line1 + line2
int[] intArray = new int[20]; // Combining both statements in one
int[] intArray = new int[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Accessing the elements of the specified array
for (int i = 0; i < intArray.length; i++)
System.out.println("Element at index " + i + ": "+ intArray[i]);
int item = value;
int [] one_dimensional_array = { value, value, value, .., value };
int [][] two_dimensional_array =
{
{ value, value, value, .. value },
{ value, value, value, .. value },
.. .. .. ..
{ value, value, value, .. value }
};
如果它是一个物体,那么它就是同一个概念
Object item = new Object();
Object [] one_dimensional_array = { new Object(), new Object(), .. new Object() };
Object [][] two_dimensional_array =
{
{ new Object(), new Object(), .. new Object() },
{ new Object(), new Object(), .. new Object() },
.. .. ..
{ new Object(), new Object(), .. new Object() }
};
对于对象,需要将其指定给 null 使用 new Type(..) ,类,如 String 以及 Integer 特殊情况将按以下方式处理
String [] a = { "hello", "world" };
// is equivalent to
String [] a = { new String({'h','e','l','l','o'}), new String({'w','o','r','l','d'}) };
Integer [] b = { 1234, 5678 };
// is equivalent to
Integer [] b = { new Integer(1234), new Integer(5678) };
通常,您可以创建 M 维度的
int [][]..[] array =
// ^ M times [] brackets
{{..{
// ^ M times { bracket
// this is array[0][0]..[0]
// ^ M times [0]
}}..}
// ^ M times } bracket
;
值得注意的是 M 多维数组在空间上是昂贵的。从你创建一个 M 二维数组 N 在所有维度上,数组的总大小都大于 N^M ,因为每个数组都有一个引用,在m维上有一个(m-1)维的引用数组。总尺寸如下
Space = N^M + N^(M-1) + N^(M-2) + .. + N^0
// ^ ^ array reference
// ^ actual data
String[] colors;
String[] cars = {"red", "blue", "green", "gray"};
System.out.println(colors[0]);
colors[0] = "pink";
Also to create a two-dimensional array, add each array within its own set of
curly braces:
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
int x = myNumbers[1][2];
You can also use a for loop inside another for loop to get the elements of a
two-dimensional array:
for (int i = 0; i < myNumbers.length; ++i) {
for(int j = 0; j < myNumbers[i].length; ++j) {
System.out.println(myNumbers[i][j]);
}
}
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
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"};
28条答案
按热度按时间xt0899hw1#
声明数组:
int[] arr;
初始化数组:int[] arr = new int[10];
10表示数组中允许的元素数声明多维
ubbxdtey2#
数组可以包含基元数据类型以及类的对象,具体取决于数组的定义。对于基本数据类型,实际值存储在连续的内存位置。对于类的对象,实际对象存储在堆段中。
一维数组:
一维数组声明的一般形式是
用java示例化数组
例如,
参考:java中的数组
epfja78i3#
另一个完整的例子是电影课:
cpjpxq1n4#
数组是项的顺序列表
如果它是一个物体,那么它就是同一个概念
对于对象,需要将其指定给
null
使用new Type(..)
,类,如String
以及Integer
特殊情况将按以下方式处理通常,您可以创建
M
维度的值得注意的是
M
多维数组在空间上是昂贵的。从你创建一个M
二维数组N
在所有维度上,数组的总大小都大于N^M
,因为每个数组都有一个引用,在m维上有一个(m-1)维的引用数组。总尺寸如下rkue9o1l5#
来源于examplehub/java
aij0ehis6#
xzv2uavs7#
例子:
或
例子:
jslywgbw8#
使用局部变量类型推断,只需指定一次类型:
或
izkcnapc9#
数组有两种基本类型。
静态数组:固定大小的数组(其大小应在开始时声明,以后不能更改)
动态数组:不考虑大小限制(纯动态数组在java中不存在。相反,最受鼓励的做法是列出清单。)
要声明整数、字符串、浮点等的静态数组,请使用下面的声明和初始化语句。
要使用动态功能,必须使用列表。。。列表是纯动态数组,不需要在开始时声明大小。下面是用java声明列表的正确方法-
p5cysglq10#
这里有很多答案。我添加了一些技巧性的方法来创建数组(从考试的Angular 来看,知道这一点很好)
声明和定义数组
这将创建一个长度为3的数组。由于它包含一个基元类型int,所以默认情况下所有值都设置为0。例如,
在变量名前使用方括号[]
初始化并向数组提供数据
这一次没有任何必要提及框中括号的大小。即使是一个简单的变体:
长度为0的数组
类似于多维数组
在变量前使用方括号:
如果你在最后放一个框式支架,那绝对没问题:
一些例子
并非强制要求每个内部元素的大小相同。
如果使用上述语法,则必须确保前进方向必须在方括号中指定值。否则就无法编译。一些例子:
另一个重要特征是协变的
重要提示:对于引用的类型,数组中存储的默认值为null。
uqjltbpv11#
声明和初始化arraylist的另一种方法:
wbrvyc0a12#
如果你说的“数组”是指
java.util.Arrays
,您可以这样做:这个很简单,很直接。
vatpfxk513#
为Java8及更高版本声明和初始化。创建一个简单的整数数组:
为[-50,50]和双精度[0,1e17]之间的整数创建一个随机数组:
二序功率:
对于字符串[],必须指定构造函数:
多维数组:
xzv2uavs14#
对于创建类对象数组,可以使用
java.util.ArrayList
. 要定义数组,请执行以下操作:为数组赋值:
从数组读取:
注:
variableName
是对数组的引用,表示variableName
将操纵arrayName
对于循环:允许您编辑的for循环
arrayName
(常规for循环):uqxowvwt15#
可以使用数组声明或数组文字(但仅当您立即声明并影响变量时,数组文字不能用于重新分配数组)。
对于基本类型:
比如说班级
String
,是一样的:第三种初始化方法在以下情况下很有用:先声明数组,然后对其进行初始化,将数组作为函数参数传递,或返回数组。需要显式类型。