如何在Java中声明和初始化数组?
当前回答
或者,
// Either method works
String arrayName[] = new String[10];
String[] arrayName = new String[10];
它声明了一个名为arrayName的数组,大小为10(您可以使用元素0到9)。
其他回答
如果要使用反射创建阵列,可以执行以下操作:
int size = 3;
int[] intArray = (int[]) Array.newInstance(int.class, size );
用于使用0以外的默认值进行初始化:
var arr = new int[1000];
Arrays.fill(arr, 1);
此外,如果您需要更动态的内容,可以使用List界面。这不会表现得很好,但更灵活:
List<String> listOfString = new ArrayList<String>();
listOfString.add("foo");
listOfString.add("bar");
String value = listOfString.get(0);
assertEquals( value, "foo" );
为Java 8和更高版本声明和初始化。创建一个简单的整数数组:
int [] a1 = IntStream.range(1, 20).toArray();
System.out.println(Arrays.toString(a1));
// Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
为[-50,50]之间的整数和双[0,1E17]创建随机数组:
int [] a2 = new Random().ints(15, -50, 50).toArray();
double [] a3 = new Random().doubles(5, 0, 1e17).toArray();
两个序列的功率:
double [] a4 = LongStream.range(0, 7).mapToDouble(i -> Math.pow(2, i)).toArray();
System.out.println(Arrays.toString(a4));
// Output: [1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0]
对于String[],必须指定构造函数:
String [] a5 = Stream.generate(()->"I will not squeak chalk").limit(5).toArray(String[]::new);
System.out.println(Arrays.toString(a5));
多维数组:
String [][] a6 = List.of(new String[]{"a", "b", "c"} , new String[]{"d", "e", "f", "g"})
.toArray(new String[0][]);
System.out.println(Arrays.deepToString(a6));
// Output: [[a, b, c], [d, e, f, g]]
声明和初始化数组非常容易。例如,您希望在数组中保存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”执行此操作时,您不必手动输入值。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 使用C返回一个数组
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 向对象数组添加属性
- 在Java流是peek真的只是调试?