java数组的初始化及操作详解

 更新时间:2019年07月03日 09:09:27   作者:幸运的lerou  
在本文中小编给大家整理了关于java数组的初始化及操作的相关知识点内容,需要的读者们参考下。

数组的基本概念

如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下:

int i1, i2, i3, ... i100;

但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次。

其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配,而数组的定义语法有如下两类。

数组动态初始化

声明并开辟数组

数据类型 [] 数组名称 = new 数据类型[长度];
数据类型 [] 数组名称 = new 数据类型[长度];
分布进行数组空间开辟(实例化)
| Tables | Are |
| ------------- |:-------------😐
| 声明数组: | 数组类型 数组名称[] = null; | | | 数组类型 [] 数组名称 =null; | | 开辟数组空间: | 数组名称 =new` 数组类型[长度]; |
那么当数组开辟空间之后,就可以采用如下的方式的操作:

数组的访问通过索引完成,即:“数组名称[索引]”,但是需要注意的是,数组的索引从0开始,所以索引的范围就是0 ~ 数组长度-1,例如开辟了3个空间的数组,所以可以使用的索引是:0,1,2,如果此时访问的时候超过了数组的索引范围,会产生java.lang.ArrayIndexOutOfBoundsException 异常信息;

当我们数组采用动态初始化开辟空间后,数组里面的每一个元素都是该数组对应数据类型的默认值;

数组本身是一个有序的集合操作,所以对于数组的内容操作往往会采用循环的模式完成,数组是一个有限的数据集合,所以应该使用 for 循环。

在 Java 中提供有一种动态取得数组长度的方式:数组名称.length;

java编程中,我们知道程序=算法+数据结构,而最基本的数据结构就是数组;相同的数据类型的元素的集合,我们称之为数组;以下对数组的初始化及操作做简单介绍。

声明数组:声明数组时,我们需要设定数组元素的类型,数组中的元素是具有相同数据类型的;然后需要一个变量或者叫引用来指向此数组,如int[] arr 或者int arr[],两个都可以。声明数组:声明数组时,我们需要设定数组元素的类型,数组中的元素是具有相同数据类型的;然后需要一个变量或者叫引用来指向此数组,如int[] arr 或者int arr[],两个都可以。

初始化数组

有两种方式进行初始化,一是直接new,二是直接赋值

数组的访问:获取数组长度

调用数组的length属性即可获取数组长度。

数组的访问:通过下标访问数组元素

注意下标是从0开始到length-1,访问方式为arr[i],i为下标。

数组的访问:遍历数组元素

以数组元素下标为递增变量,循环输出即可遍历。

数组的复制:System.arraycopy()

使用封装的System.arraycopy()方法即可对当前数组进行复制操作。

数组的复制:Array.copyOf()

使用java.util.Array类的此方法,也可以实现数组复制,此方法有以下特点:

1.如果newLength大于原数组长度,则用0或者null进行补充,相当于扩容;

2.如果newLength小于原数组的长度,则截取;

数组的排序:

常见的数组排序有插入排序,冒泡排序以及快速排序法,这里介绍最常用的冒泡排序法,即相邻两个元素进行比较,大的元素交换到后,小的交换到前,循环以此类推。

数组的排序:Arrays.sort()

JDK中提供的Arrays.sort()方法,也可以进行数组排序。

相关文章

  • tk.mybatis实现uuid主键生成的示例代码

    tk.mybatis实现uuid主键生成的示例代码

    本文主要介绍了tk.mybatis实现uuid主键生成的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • SpringBoot使用SSE进行实时通知前端的实现代码

    SpringBoot使用SSE进行实时通知前端的实现代码

    这篇文章主要介绍了SpringBoot使用SSE进行实时通知前端,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Java读取.properties配置文件方法示例

    Java读取.properties配置文件方法示例

    这篇文章主要介绍了Java读取.properties配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • IDEA 端口占用的解决方法(推荐)

    IDEA 端口占用的解决方法(推荐)

    这篇文章主要介绍了IDEA 端口占用的解决方法,本文通过两种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • IDEA2021.2永久激活码最新超详细(激活到2099)

    IDEA2021.2永久激活码最新超详细(激活到2099)

    这篇文章主要介绍了IDEA2021.2永久激活码,是idea2021版最新激活方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 基于java SSM springboot实现景区行李寄存管理系统

    基于java SSM springboot实现景区行李寄存管理系统

    这篇文章主要介绍了基于java SSM springboot实现的景区行李寄存管理系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Java Scanner如何获取字符串和带空格的字符串

    Java Scanner如何获取字符串和带空格的字符串

    这篇文章主要介绍了Java Scanner如何获取字符串和带空格的字符串问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Java动态代理语法Proxy类原理详解

    Java动态代理语法Proxy类原理详解

    这篇文章主要介绍了Java动态代理语法Proxy类原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Spring Boot Mysql 数据库操作示例

    Spring Boot Mysql 数据库操作示例

    本篇文章主要介绍了Spring Boot Mysql 数据库操作示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java编程实现非对称加密的方法详解

    Java编程实现非对称加密的方法详解

    这篇文章主要介绍了Java编程实现非对称加密的方法,简单讲述了非对称加密的概念、原理,并结合实例形式分析了java实现DH加密解密、RSA加密解密、ElGamal加密等具体操作技巧,需要的朋友可以参考下
    2017-08-08

最新评论