Java-数组的定义与使用

2)静态初始化:在创建数组时不直接指定数组元素个数,而直接将具体的数据内容进行指定。

int[] array1 = new int[]{0,1,2,3};

double[] array2 = new double[]{1.0,2.0,3.0};

String[] array3 = new String[]{“hello”,“world”};

【注意事项】

· 静态初始化虽然没有指定数组的长度,编译器在编译时根据{}中元素个数确定数组长度

· 静态初始化时,{}中元素类型必须与[]前数据类型相同

**·**静态初始化不能和动态初始化结合使用

int[] array = new int[10]{1,2,3,4}; //这种写法是错误的

**·**静态初始化可以简写,省去后面的new T[ ]

int[] array = {1,2,3,4,5,6};

**·**如果不确定数组内容时,使用动态初始化,否则使用静态初始化

在Java中可以允许有数组长度为0的数组,一个方法的结果为数组,结果恰好为空的话,这样的数组很有用。例:

new elementType[0]

new elementType[] {} //注意长度为0的数组与null不同

四.访问数组元素

==========

创建了数组就可以往数组中填元素,例如使用一个循环:

int[] a = new int[100];

for(int i=0;i<100;i++){

a[i] == i; //给数组中填充0-100

}

创建数组时,所有元素都初始化为0。boolean数组的元素会初始化为false,对象数组的元素会初始化为一个特殊值null,表示这些元素还未存放任何对象。例:

String[] names = new String[10];

这会创建一个包含10个字符串长度的数组,所有的字符串都为null。

警告:如果创建了一个长度为100的数组,访问0-99以外的下标,例如a[100]就会引发

“array index out of bounds”异常。

想获得数组中元素的个数可以使用array.length     例如:

for(int i=0;i<array.length;i++){

System.out.println(a[i]);

}

五.for each 循环

=============

Java中有一种循环结构来依次处理数组中每个元素而不使用下标。

这种增强的for循环的语句格式为:for(varible : collection) statement   例:

for(int i : array)

System.out.println(i); //循环遍历数组中的每一个元素

当然可以使用传统的循环:

for(int i=0;i<array.length;i++){

System.out.println(array[i]);

}

for each循环的优点是显得更加简洁,更不易出错,因为我们不必考虑下标的值。

**tip:**有一个更为简单方式打印数组中的每一个值,利用Arrays类的toString方法。调用Arrays.toString(a),返回一个字符串,这个字符串包含数组元素。例如:

System.out.println(Arrays.toString(a)); //返回字符串"[0,1,2,3,4]"

六.数组的拷贝

=======

Java中将一个数组拷贝到另一个数组中这两个数组将引用同一个数组

int[] array1 = array2;

array1[3] = 5; //这时array2[3] 的值也是5

如果想将一个数组的所有值拷贝到另一个数组中要使用Arrays类的copyOf方法:

int[] array2 = Arrays.copyOf(array1,array1.length);

第二个参数是新数组的长度,可以使用这个方法来增加数组的大小

array = Arrays.copyOf(array,2 * array.length);

如果数组元素是数值型,那么额外的数组元素将被赋值为0;布尔型将被赋值为false。如果长度小于原始数组长度则只拷贝前面的值。

七.数组排序

======

对数值型数组排序,使用Arrays类中的sort方法,例:

int[] array = {2,3,4,9,65,8,47};

Arrays.sort(array);

for(int i : array)

System.out.println(i);

通过这可以将数组进行排序然后进行打印出来。

八.二维数组

======

创建并初始化一个二维数组:

int[][] array = {{1,2,3},{4,5,6},{7,8,9}};

初始化完成就可以通过array[i][j]访问数组元素。

for each循环不能自动处理二维数组中的每一个元素。它会循环处理行,这些行本身就是一维数组,所以可以嵌套循环访问二维数组中的每一个元素

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南
oud面试专题**

[外链图片转存中…(img-CKpaBWux-1721136692886)]

SpringBoot面试专题

[外链图片转存中…(img-0oI3TWJe-1721136692886)]

zookeeper面试专题

[外链图片转存中…(img-pc9jJy6p-1721136692886)]

常见面试算法题汇总专题

[外链图片转存中…(img-6yyChYDj-1721136692887)]

计算机网络基础专题

[外链图片转存中…(img-bGkWv4C6-1721136692887)]

设计模式专题

[外链图片转存中…(img-KPsNLb8U-1721136692888)]

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值