首页 > 编程语言 >Java零基础入门-数组

Java零基础入门-数组

时间:2023-11-25 10:03:25浏览次数:51  
标签:arr Java 入门 int 元素 System 数组

Java零基础入门-数组

前言

Java是一门面向对象的编程语言,被广泛应用于各个领域。数组是Java编程中最基本也是最重要的数据结构之一,它可以用来存储一组数据,并且方便进行操作和处理。本文将为大家介绍Java数组的基本概念、语法和常见应用场景,帮助初学者快速入门。

摘要

本文将从以下几个方面来介绍Java数组:

  1. 基本概念:什么是数组,数组有哪些特性。

  2. 语法:Java数组的定义、初始化、访问和操作。

  3. 应用场景案例:Java数组在实际编程中的应用场景。

  4. 优缺点分析:Java数组的优劣势及其适用范围。

  5. 类代码方法介绍:Java数组相关类的方法介绍。

  6. 测试用例:以main函数为例,演示Java数组的基本操作。

  7. 全文小结:对本文进行总结。

简介

什么是数组

数组(Array)是一种线性的数据结构,它是由相同类型的数据元素所组成的有限序列。在Java中,数组是一种非常常见的数据结构,它可以用来存储一组数据,并且方便进行操作和处理。

数组的特性

  1. 数组是一种有序数据结构,它的元素是按照一定顺序排列的。

  2. 数组的元素类型必须相同,也就是说,数组中只能存储相同类型的数据。

  3. 数组的长度是确定的,创建数组时必须指定数组的长度。

  4. 数组可以通过下标来访问元素,下标从0开始,也就是说,第一个元素的下标是0,第二个元素的下标是1,以此类推。

源代码解析

Java数组的定义

Java数组的定义方式有两种:一种是使用数组类型声明数组变量,另一种是使用new运算符创建数组对象。下面是两种方式的示例代码:

// 第一种方式:使用数组类型声明数组变量
int[] arr1 = new int[10]; // 定义一个长度为10的int类型数组

// 第二种方式:使用new运算符创建数组对象
int[] arr2 = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的int类型数组

Java数组的初始化

Java数组的初始化方式有两种:一种是使用默认值初始化数组,另一种是使用指定值初始化数组。下面是两种方式的示例代码:

// 默认值初始化数组
int[] arr = new int[10]; // 将数组的每个元素都初始化为0

// 指定值初始化数组
int[] arr = {1, 2, 3, 4, 5}; // 将数组的每个元素分别初始化为1、2、3、4和5

Java数组的访问

Java数组的访问需要使用下标,下标从0开始。下面是示例代码:

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

// 访问数组元素
int a = arr[0]; // 获取数组的第一个元素
int b = arr[1]; // 获取数组的第二个元素

Java数组的操作

Java数组支持的常规操作包括:增加元素,删除元素,修改元素,查找元素等等。下面是示例代码:

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

// 增加元素
int[] newArr1 = Arrays.copyOf(arr, arr.length + 1); // 复制数组并增加一个元素
newArr1[arr.length] = 6; // 在数组的末尾添加一个元素

// 删除元素
int[] newArr2 = Arrays.copyOf(arr, arr.length - 1); // 复制数组并删除一个元素
System.arraycopy(arr, 0, newArr2, 0, 3); // 删除数组的第4个元素

// 修改元素
arr[0] = 0; // 修改数组的第一个元素

// 查找元素
int index = Arrays.binarySearch(arr, 3); // 查找元素3在数组中的索引位置

应用场景案例

数组在排序算法中的应用

排序算法中经常用到数组,例如冒泡排序、插入排序和选择排序。下面以冒泡排序为例,介绍数组在排序算法中的应用:

public static void bubbleSort(int[] arr) {
    int n = arr.length;

    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

数组在统计分析中的应用

在统计分析中,数组也经常被用作数据的存储和处理。例如,下面的代码演示了如何计算一个整型数组中的平均值:

public static double average(int[] arr) {
    int n = arr.length;
    int sum = 0;

    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }

    return (double) sum / n;
}

优缺点分析

优点

  1. 数组可以方便地存储一组具有相同数据类型的数据。

  2. 数组的访问速度很快,因为数组元素在内存中是连续存储的。

  3. 数组支持常规操作,例如增加元素、删除元素、修改元素、查找元素等等。

缺点

  1. 数组的长度是固定的,不能随意增加或减少。

  2. 数组只能存储相同类型的数据,不能存储不同类型的数据。

  3. 在大规模的数据存储和处理中,数组的效率并不高。

类代码方法介绍

Java中提供了一些常用的数组相关类和方法,下面介绍一下这些方法:

Arrays类

Arrays类是Java中提供的一个数组工具类,它包含了一些常用的数组操作方法,例如排序、查找、复制等等。常用的方法有:

  • sort(int[] a):对数组a进行排序。

  • binarySearch(int[] a, int key):在数组a中查找元素key的索引位置。

  • copyOf(int[] a, int newLength):复制数组a并指定新的长度newLength。

System类

System类是Java中提供的一个系统工具类,它包含了一些常用的系统操作方法。我们可以通过System类的arraycopy方法来对数组进行复制和截取操作。常用的方法有:

  • arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组src从下标srcPos开始,复制到数组dest的下标destPos开始,复制长度为length。

测试用例

下面使用main函数演示Java数组的基本操作:

public static void main(String[] args) {
    // 定义一个长度为10的int类型数组并初始化
    int[] arr1 = new int[10];
    for (int i = 0; i < arr1.length; i++) {
        arr1[i] = i + 1;
    }

    // 打印数组
    System.out.print("数组arr1:");
    for (int i = 0; i < arr1.length; i++) {
        System.out.print(arr1[i] + " ");
    }
    System.out.println();

```java
    // 使用new运算符创建包含5个元素的int类型数组并初始化
    int[] arr2 = new int[]{6, 7, 8, 9, 10};

    // 打印数组
    System.out.print("数组arr2:");
    for (int i = 0; i < arr2.length; i++) {
        System.out.print(arr2[i] + " ");
    }
    System.out.println();

    // 访问数组元素
    int a = arr1[0];
    System.out.println("数组arr1的第一个元素是:" + a);

    // 修改数组元素
    arr1[0] = 0;

    // 打印修改后的数组
    System.out.print("修改后的数组arr1:");
    for (int i = 0; i < arr1.length; i++) {
        System.out.print(arr1[i] + " ");
    }
    System.out.println();

    // 复制数组
    int[] newArr = Arrays.copyOf(arr1, arr1.length + arr2.length);

    // 将arr1和arr2复制到newArr中
    System.arraycopy(arr1, 0, newArr, 0, arr1.length);
    System.arraycopy(arr2, 0, newArr, arr1.length, arr2.length);

    // 打印复制后的数组
    System.out.print("复制后的数组newArr:");
    for (int i = 0; i < newArr.length; i++) {
        System.out.print(newArr[i] + " ");
    }
    System.out.println();

    // 使用Arrays类的sort方法对数组进行排序
    Arrays.sort(newArr);

    // 打印排序后的数组
    System.out.print("排序后的数组newArr:");
    for (int i = 0; i < newArr.length; i++) {
        System.out.print(newArr[i] + " ");
    }
    System.out.println();

    // 查找元素
    int index = Arrays.binarySearch(newArr, 7);
    System.out.println("元素7在数组newArr中的索引位置是:" + index);
}

输出结果为:

数组arr1:1 2 3 4 5 6 7 8 9 10 
数组arr2:6 7 8 9 10 
数组arr1的第一个元素是:1
修改后的数组arr1:0 2 3 4 5 6 7 8 9 10 
复制后的数组newArr:0 2 3 4 5 6 7 8 9 10 6 7 8 9 10 
排序后的数组newArr:0 2 3 4 5 6 6 7 8 9 9 10 10 
元素7在数组newArr中的索引位置是:7

全文小结

本文从基本概念、语法、应用场景、优缺点及类代码方法介绍等角度全面介绍了Java数组。希望通过本文的学习,读者能够掌握Java数组的基本用法并能够灵活运用。

标签:arr,Java,入门,int,元素,System,数组
From: https://blog.51cto.com/u_15700799/8556667

相关文章

  • 【开源】基于JavaWeb的智慧家政系统 毕业设计
    一、摘要1.1项目介绍基于微信小程序+JAVA+Vue+SpringBoot+MySQL的智慧家政系统,包含了地址管理模、订单管理、家政分类管理、家政服务管理、用户反馈管理模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,基于微......
  • Java二级医院区域HIS信息管理系统源码(SaaS服务)
    一个好的HIS系统,要具有开放性,便于扩展升级,增加新的功能模块,支撑好医院的业务的拓展,而且可以反过来给医院赋能,最终向更多的患者提供更好的服务。系统采用前后端分离架构,前端由Angular、JavaScript开发;后端使用Java语言开发。融合B/S版电子病历系统,支持电子病历四级。系统运行稳定、......
  • Java报表详情介绍及示例程
    Java报表详情介绍及示例程序简介Java报表是一种用于展示数据并提供可视化分析的工具。它可以将数据转化为图表、表格、图像等形式,帮助用户更直观地理解数据的含义和趋势。Java报表通常用于企业管理、数据分析、业务决策等领域,具有易于使用、灵活性高、功能强大等特点。常用的Java报......
  • java Calendar、LocalDateTime、LocalDate日期加减
    Calendar日期获取,设置,加减创建一个日历对象获取当前年份,月份,日期等.....设置指定年份,月份,日期等.....Calendarcalendar=Calendar.getInstance();//创建一个日历对象intyear=calendar.get(calendar.YEAR);//获取当前年份System.out.p......
  • 在.Net中使用Java代码?
    前言你没有看错,我确实在.Net6的项目中在编写java,我都usingjava了,算不算在写java那?usingcom.microsoft.sqlserver.jdbc;usingjava.sql;并且编辑器还带提示的功能这一切都是借助IKVM来实现的,或许有些人还听说过使用IKVM的CLI命令来转换jar包,比如使用Bing搜索:ikvm转换jar包......
  • 5-Windows系统上安装java
      有一些生信软件是java语言写的,就需要安装java才能运行,下面展示java的安装。 1,下载(https://www.oracle.com/java/technologies/downloads/#java17) 官网下载java2,双击安装,这里的安装位置最好按照默认的来,不更改,在C盘。 安装3,配置环境变量,为了让任何目录......
  • Java21虚拟线程实践
    Java21虚拟线程实践一个月之前,java21正式版发布了,作为继java17之后的又一个长期支持版本(LTS),为我们带来了很多新的特性,其中我最感兴趣的就是虚拟线程(virtualthread),相信大家对虚拟线程也很好奇。趁着空闲时间安装了jdk21来体验一把,顺便把我查到的关于java21虚拟线程相关的资料......
  • Java之API详解之Runtime的详细解析
     3.1概述Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息3.2常见方法常见方法介绍我们要学习的Object类中的常见方法如下所示:publicstaticRuntimegetRuntime() //当前系统的运行环境对象publicvoidexit(intstatus) //停止虚拟机publicintavailab......
  • JSON 格式的字符串转换回数组
    要将JSON格式的字符串转换回数组,你可以使用JavaScript的JSON.parse方法。这个方法可以将一个JSON字符串解析成JavaScript对象或数组。对于你的字符串,可以这样操作:假设你有一个JSON字符串str,其内容如下:'[{"goodsCode":"ABC1","qty":12.22},{"goodsCode":"ABC2","q......
  • 数据结构之二叉堆(Java)
    一:概述二叉堆:二叉堆本质上是一种完全二叉树,它分为两个类型。最大堆最小堆二:最大堆与最小堆的具体说明<1>最大堆最大堆的任何一个父节点的值,值大于或等同于它左、右孩子节点的值。例子如下图所示:<2>最小堆最小堆的任何一个父节点的值,都小于或等于它的左、右孩子节点的值。例子如下图......