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()方法,也可以进行数组排序。

相关文章

  • Java之URLEncoder、URLDecoder、Base64编码与解码方式

    Java之URLEncoder、URLDecoder、Base64编码与解码方式

    这篇文章主要介绍了Java之URLEncoder、URLDecoder、Base64编码与解码方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java数据结构之双向链表图解

    Java数据结构之双向链表图解

    这篇文章主要为大家详细介绍了Java数据结构之双向链表,文中图解分析的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Springcloud之Gateway组件详解

    Springcloud之Gateway组件详解

    Spring Cloud Gateway是Spring Cloud微服务生态下的网关组件。Spring Cloud Gateway是基于Spring 5和Spring Boot 2搭建的,本质上是一个Spring Boot应用。本文详细介绍了SpringCloud的网关组件 Gateway,,需要的朋友可以参考下
    2023-05-05
  • java双色球机选法程序解析

    java双色球机选法程序解析

    这篇文章主要为大家详细解析了java双色球机选法程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • mybatis Reflector反射类的具体使用

    mybatis Reflector反射类的具体使用

    Reflector类是MyBatis反射模块的核心,负责处理类的元数据,以实现属性与数据库字段之间灵活映射的功能,本文主要介绍了mybatis Reflector反射类的具体使用,感兴趣的可以了解一下
    2024-02-02
  • SpringBoot使用quartz,注入feignClient,client为null问题

    SpringBoot使用quartz,注入feignClient,client为null问题

    在SpringBoot中使用Quartz和FeignClient时,如果通过@Autowired或构造方法注入FeignClient导致为null,可以使用Spring提供的通过文件名获取bean的方式解决,这种方法在Quartz启动时通过反射注入类,而类还未初始化好,导致FeignClient为null的问题
    2024-11-11
  • SpringBoot中整合MyBatis-Plus的方法示例

    SpringBoot中整合MyBatis-Plus的方法示例

    这篇文章主要介绍了SpringBoot中整合MyBatis-Plus的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • JVM常见垃圾收集器学习指南

    JVM常见垃圾收集器学习指南

    这篇文章主要为大家介绍了JVM常见垃圾收集器学习指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • mybatis如何处理返回结果集

    mybatis如何处理返回结果集

    这篇文章主要介绍了mybatis如何处理返回结果集问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • MyBatis映射文件中parameterType与resultType的用法详解

    MyBatis映射文件中parameterType与resultType的用法详解

    MyBatis中的ParameterType指的是SQL语句中的参数类型,即传入SQL语句中的参数的类型,下面这篇文章主要给大家介绍了关于MyBatis映射文件中parameterType与resultType用法的相关资料,需要的朋友可以参考下
    2023-04-04

最新评论