如何在Java中声明和初始化数组?
当前回答
声明和初始化数组非常容易。例如,您希望在数组中保存5个整数元素,即1、2、3、4和5。您可以通过以下方式进行操作:
a)
int[] a = new int[5];
or
b)
int[] a = {1, 2, 3, 4, 5};
因此基本模式用于初始化,方法a)的声明是:
datatype[] arrayname = new datatype[requiredarraysize];
数据类型应为小写。
因此,基本模式用于初始化,方法a的声明是:
如果是字符串数组:
String[] a = {"as", "asd", "ssd"};
如果是字符数组:
char[] a = {'a', 's', 'w'};
对于浮点双精度,数组的格式将与整数相同。
例如:
double[] a = {1.2, 1.3, 12.3};
但是当您通过“方法a”声明和初始化数组时,您必须手动或通过循环或其他方式输入值。
但是,当您通过“方法b”执行此操作时,您不必手动输入值。
其他回答
Type[] variableName = new Type[capacity];
Type[] variableName = {comma-delimited values};
Type variableName[] = new Type[capacity];
Type variableName[] = {comma-delimited values};
也是有效的,但我更喜欢在类型后面加括号,因为更容易看出变量的类型实际上是一个数组。
要创建类对象的数组,可以使用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
}
在Java 9中
使用不同的IntStream.iterate和IntStream.takeWhile方法:
int[] a = IntStream.iterate(10, x -> x <= 100, x -> x + 10).toArray();
Out: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
int[] b = IntStream.iterate(0, x -> x + 1).takeWhile(x -> x < 10).toArray();
Out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
在Java 10中
使用局部变量类型推断:
var letters = new String[]{"A", "B", "C"};
使用局部变量类型推断,您只需指定一次类型:
var values = new int[] { 1, 2, 3 };
Or
int[] values = { 1, 2, 3 }
数组有两种基本类型。
静态数组:固定大小数组(其大小应在开始时声明,以后不能更改)
动态阵列:不考虑大小限制。(Java中不存在纯动态数组。相反,最鼓励使用List。)
要声明Integer、string、float等静态数组,请使用以下声明和初始化语句。
int[]intArray=新int[10];String[]intArray=新int[10];float[]intArray=新int[10];//这里有10个索引,从0到9
要使用动态功能,必须使用列表。。。列表是纯动态数组,不需要在开头声明大小。下面是用Java声明列表的正确方法-
ArrayList<String>myArray=新ArrayList<String>();myArray.add(“值1:something”);myArray.add(“值2:更多”);
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 使用C返回一个数组
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 向对象数组添加属性
- 在Java流是peek真的只是调试?