IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> JAVA 数组 -> 正文阅读

[数据结构与算法]JAVA 数组

概述:

???1, 一维数组入门

????????①数组定义、特点、内存分配

????????②使用一维数组存储数据

???2.一维数组的应用

????????①查询元素

????????②数组类型做形参

????????③查询最大值最小值

????????④添加元素或删除元素

? ? ? ? ⑤Arrays工具类

? ? ? ? ⑥理解main(String args[])

创建数组

????????数组是相同类型数据的有序集合

????????相同类型的若干个数据,按照一定先后次序排列组合而成。

????????其中,每一个数据称作一个数组元素

????????每个数组元素可以通过一个下标来访问它们.

数组特点:

????????其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

? ? ? ? 其元素必须是相同类型,不允许出现混合类型。

????????数组中的元素可以是任何数据类型,包括基本类型和引用类型。

数组属引用类型

?????length,? elements? of? the? array

数组概述

???????数组只有一个名称,即标识符

???????元素下标标明了元素在数组中的位置,从0开始

???????数组中的每个元素都可以通过下标来访问

???????数组长度固定不变,避免数组越界

???????声明一个变量就是在内存空间划出一块合适的空间

???????声明一个变量就是在内存空间划出一块合适的空间

如何使用数组?

????????使用数组四步走:

????????1、声明数组? ? ? int[]a;

? ? ? ??2、分配空间? ? ? a=new int[5];

? ? ? ??3、赋值? ? ? ? ? ? ?a[0]=8;

? ? ? ??4、处理数据? ? ?a [0] = a[0] * 10;

声明数组

????????声明数组: 告诉计算机数据类型是什么

????????int[ ] score1;

????????int score2[ ];? ? ?数据类型 数组名[ ] ;

????????String[ ] name;?数据类型[ ] 数组名?

分配空间

????????分配空间: 告诉计算机分配几个连续的空间

? ? ? ? ? ?int[]? score = new int[30];

? ? ? ? ? ?int[]? avgAge = new int[6];

? ? ? ? ? ?String[]? name = new String[30];

????????声明数组并分配空间

????????????????数据类型[ ] 数组名 = new 数据类型[大小] ;

数组赋值

????????方法1: 边声明边赋值

????????????????int[ ] score = {89, 79, 76};

????????????????int[ ] score = new int[ ]{89, 79, 76};

? ? ? ??方法2:动态地从键盘录入信息并赋值

? ? ? ? ? ? ? ??Scanner input = new Scanner(System.in);

????????????????????????for(int i = 0; i < 30; i ++){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?score[i] = input.nextInt();

????????????????????????}

一维数组的声明

????????一维数组的声明方式有两种:

? ? ? ? ? ? ? ?type[] arr_name;

? ? ? ? ? ? ? ??type arr_name[];

? ? ??例如:

? ? ? ? ? ?int[] intArrays;

? ? ? ? ? ?int intArrays[];

? ? ? ? ? ?double[] doubleArrays;

? ? ? ? ? ?Person[] pArrays;

? ? ? ? ? ?String[] strArrays;

数组初始化

????????动态初始化

? ? ? ??数组定义与为数组元素分配空间并赋值的操作分开进行

? ? ? ? ? ? ? ? int a[] = null;

????????????????a = new int[3];

????????????????a[0] = 3;

????????????????a[1] = 9;

????????????????a[2] = 8;

????????静态初始化:

????????????????除了用new关键字来产生数组以外,还可以直接在定义数组的同时

????????????????就为数组元素分配空间并赋值。

????????????????格式: 类型 [] 数组名 = {元素1[, 元素2 ……]};

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

数组的界限

????????定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;

????????数组元素的引用方式:arrayName[index]

????????????????üindex为数组元素下标,可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];

????????????????ü数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 ~ n-1;

?????????每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长度

????????????????(元素个数);

????????????????????????ü 数组的长度: 数组名.length

????????????????起点和终点

????????????????????????ü起点: 数组名[0]

????????????????????????终点:?数组名[length-1]

????????????????????????

????????

二维数组

????????二维数组举例:

????????????????int [][] a = {{1,2},{3,4,0,9},{5,6,7}};

? ? ? ? ? ? ? ??Java中多维数组不必须是规则矩阵形式

? ??

????????

二维数组

????????二维数组可以看成以数组为元素的数组。例如:

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

????????Java中多维数组的声明和初始化应按从高维到低维的顺序进行,例如:

????????

二维数组初始化

????????Declare, create and initiate in the same time :

????????????????int intA[][] = {{1,2},{2,3},{3,4,5}};//合法

????????????????int intB[3][2] = {{1,2},{2,3},{4,5}};//非法

????????Declare, create and initiate separately :

????????????????int a[][] = new int[3][5];

????????????????int b[][] = new int[3][] ;

????????????????b[0] = new int[2];

????????????????b[1] = new int[3];

????????????????b[2] = new int[5];

命令行参数

????????JAVA应用程序的主方法(程序的入口)

????????????????public static void main (String args[]) {…}

????????????????public static void main (String[] args) {…}

????????命令行参数

????????????????在启动Java应用程序时可以一次性地向应用程序中传递0~多个参数----命令行参数

????????????????命令行参数使用格式:

????????????????????????java ClassName lisa "bily" "Mr Brown“

????????????????由参数args接收

????????????????空格将参数分开

????????????????若参数包含空格,用双引号引起来

命令行参数用法举例

????????public class Test {

????????????????public static void main(String[] args) {

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

????????????????????????????????System.out.println("args[" + i + "] = " + args[i]);

????????????????????????????????}

???????????????????????}

???????????????}

//运行程序

????????java Test lisa "bily" "Mr Brown"

输出结果:

????????args[0] = lisa

????????args[1] = bily

????????args[2] = Mr Brown

总结

????????一维数组入门

????????????????数组的特点:长度固定,连续空间,存储同一种类型数据

????????????????数组内存分配图

????????????????for-each循环:简单、主要用于遍历操作

????????一维数组的应用

????????????????数组优缺点

????????????????????????优点:按照索引查询效率高

????????????????????????缺点:添加删除元素效率低;按照内容查询效率低(无序)

????????冒泡排序:基本的排序算法,理解排序规则,实现并完善排序代码

????????数组类型做形参

????????二维数组:

????????????????实质是每个元素是一维数组的一维数组;二维数组内存分配图

?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 11:55:23  更:2021-12-09 11:57:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/10 2:42:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码