【Java基础 3】Java 数组详解

这篇具有很好参考价值的文章主要介绍了【Java基础 3】Java 数组详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🍊 Java学习:社区快速通道

1 数组

1.1 概述

数组是相同数据类型的多个数据的容器


这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素。(“简单理解就是:一个跟一个顺序排列”)


1.2 创建格式

  • 格式 1. 数据类型[] 数组名称 = new 数据类型[数组长度];
int[] a = new int[];
  • 格式 2. 数据类型[] 数组名称 = {数组内容 1,数组内容 2,数组内容 3…数组内容 n};
int[] a = {1, 2, 3};
  • 格式 3. 数据类型[] 数组名;
    • 格式 3. 属于只创建了数组引用名, 并未在内存创建数组空间。
int[] a;
  • 格式 4. 数据类型[] 数组名称 = new 数据类型[]{内容 1,内容 2,内容 3…内容 n};
int[] a = new int[]{1, 2, 3};

1.3 下标

可以理解为数组中内容的数字序号,从 0 开始 ,对于长度为 n 的数组,下标的范围是 0~n-1。

可以通过下标的方式访问数组中的每一个元素


1.4 数组长度获取

数组名称.length


1.5 注意

使用数组不当, 会出现如下问题:

  • 数组未赋值: 空指针异常
  • 超出长度的下标操作: 数组越界异常

注意:数组的长度在创建时就固定了。


2 数组常用算法

2.1 冒泡排序

2.1.1 原理

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2.1.2 名称由来

是因为最小(或最大)的元素会经由交换慢慢“浮”到数列的顶端(降序或升序),就如同水中的气泡最终会上浮到顶端一样,故名“冒泡排序”。


2.1.3 口诀

升序:

  • N个数字来排队
  • 两两相比小靠前,
  • 外层 循环length - 1
  • 内层循环length - i - 1

降序:

  • N个数字来排队
  • 两两相比大靠前,
  • 外层 循环length - 1
  • 内层循环length - i - 1

private static void sort(int[] numbers) {
    for (int i = 0; i < numbers.length - 1; i++) {
        for (int j = 0; j < numbers.length - 1 - i; j++) {
            if (numbers[j] > numbers[j + 1])
                swap(numbers, j, j + 1);
        }
    }
}

2.2 二分查找

2.2.1 概述

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,二分查找要求数组数据必须采用顺序存储结构有序排列。


2.2.2 原理

假设数组中元素是按升序排列,将数组中间位置的数据与查找数据比较,如果两者相等,则查找成功;否则利用中间位置记录将数组分成前、后两个子数组,如果中间位置数据大于查找数据,则进一步查找前子数组,否则进一步查找后子数组。


重复以上过程,直到找到满足条件的数据,则表示查找成功,直到子数组不存在为止,表示查找不成功。文章来源地址https://www.toymoban.com/news/detail-481720.html

private static void binarySearch(int[] numbers, int target){
    int l = 0;
    int r = numbers.length - 1;
    while (l < r){
        int mid = l + (r - l) / 2;
        if (numbers[mid] == target){
            System.out.println("排序后,6的索引是:" + mid);
            return;
        }else if(numbers[mid] > target){
            mid = r;
        }else {
            mid = l;
        }
    }
}

到了这里,关于【Java基础 3】Java 数组详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安全基础 --- https详解(01) + 数组(js)

    CIA三属性:完整性(Confidentiality)、保密性(Integrity)、可用性(Availability),也称信息安全三要素。 核心技术:用非对称加密传输对称加密的密钥,然后用对称密钥进行通信 HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),超文本传输协议。 HTTPS 解决数据传输安全

    2024年02月10日
    浏览(33)
  • c语言基础知识帮助理解(详解数组)

    前面梳理完函数和递归的知识后,来进行数组知识的梳理 对函数有疑惑的同学,可以看我之前的文章:c语言基础知识帮助理解(详解函数)_总之就是非常唔姆的博客-CSDN博客  c语言基础知识帮助理解(函数递归详解)_总之就是非常唔姆的博客-CSDN博客 想做点游戏的同学可以

    2024年02月14日
    浏览(39)
  • 【算法基础】java基础——数组&静态方法

    数组:         数组能够顺序存续相同类型的多个数据。         一维数组:如果有n个数据,它们的编号为0到n-1,对于0到n-1之间任意的i,可以用a[i]表示数组a中的第i+1个元素。 初始化数组: 举例: double []a; a=new double[N]; double [] b=new double [N]; int c={1,3,4,76,8} 使用数组: a.

    2024年01月20日
    浏览(50)
  • Java中的数组——详解!

    1.概念 数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。 2.基本要素 一个数组由

    2024年02月09日
    浏览(32)
  • java中的数组详解

            数组名         数组元素:数组中的数据         下标或索引、角标:数组中数据的位置         数组的长度:数组中元素的个数length从0开始 数组是有序排序的 数组本身是引用数据类型,而数组中的元素可以是任意数据类型。 创建数组对象会在内存

    2024年02月17日
    浏览(30)
  • 【Java】数组详解

    数组(Array)是一种用于存储相同类型元素的数据结构。它是一组连续的内存位置,每个位置都存储着一个元素,并通过索引来访问和操作这些元素。数组通常用于存储和处理大量的数据,提供了一种有效的方式来组织和访问数据。 在 Java 中,数组的创建和初始化可以通过以

    2024年02月12日
    浏览(22)
  • 【Java 基础】Java 数组、方法极致精讲

    《 Java 零基础入门到精通 》 专栏持续更新中。通过本专栏你将学习到 Java 从 入门 到 进阶 再到 实战 的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,进群可找我领取 前端/Java

    2023年04月08日
    浏览(30)
  • Java基础语法(五):数组

    目录 前言 一、数组什么? 总结 Java 数组是一种非常重要的数据结构,它可以存储一系列同类型的数据,且具有高效的遍历和访问能力,被广泛应用于各种领域。本文将介绍 Java 数组的基本概念、声明和初始化、访问元素、数组长度、多维数组、以及常用方法等内容。 Java 数

    2023年04月22日
    浏览(44)
  • Java基础 |数组排序

    所有知识点均来源于《Java从入门到精通》(第六版)。 他排序数组的过程中总将较小的数往前排,较大的数往后放,类似水中气泡往上升的动作,所以叫冒泡排序。 基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移

    2024年01月25日
    浏览(41)
  • Java基础(六)数组

    1. 数组 数组是具有相同数据类型且按照一定次序排列的一组变量的集合体。即一个变量名表示一批数据。 Java为数组在内存中分配一段连续的空间,这段空间中存储数据的个数是固定的。 数组元素 构成一个数组的每一个数据称为数组元素。 数组下标 下标是数组元素在数组中

    2024年02月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包