目录

  1. 数组的概念
  2. 数组的创建
  3. 数组的引用
  4. 数组的创建
  5. 数组元素的初始化
  6. 数组的使用
  7. 使用数组
  8. 数组的复制
  9. 多维数组
  10. 数组的概念

数组由同一类型的对象或者基本数据组成,并封装在同一一个标识符(数组名称)下。

数组是对象

动态初始化

可以赋值给Object类型的变量

在数组中可以调用类Object的所有方法

二每个数组都有一 个由public final修饰的成员变量: length,即数组含有元素的个数( length可以是正数或零)

数组元素

数组中的变量被称作数组的元素

元素没有名字,通过数组名字和非负整数下标值引用数组元素

数组的创建

数组的引用

声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间

不能直接使用,必须经过初始化分配内存后才能使用

数组声明举例:

括号在数组名前:Type[] arrayName;

int[] intArray;String[] stringArray;

括号在数组名后:Type arrayName[];

int intArray[];String stringArray[];

数组的创建

用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量。

基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象的的引用。

数组的创建举例:

直接创建

int[] a;a = new int [10];String[] s;s = new String[3]

可以将数组的声明和创建一并执行

int a[]=new int[1o];

可以在一条声明语句中创建多个数组

String[] s1=new String[3], s2=new String[8];

数组元素的初始化

声明数组名时,给出了数组的初始值,程序便会利用数组初始值创建数组并对它的各个元素进行初始化

int a[]={22, 33, 44, 55};

创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。

基本类型数值数据 ,默认的初始值为0 ;

boolean类型数据,默认值为false;

引用类型元素的默认值为null。

数组的使用

使用数组

引用数组的一个元素:arrayName[index]

数组下标必须是int,short, byte,或者char。

下标从零开始计数。

元素的个数即为数组的长度,可以通过arrayName.length得到。元素下标最大值为length- 1,如果超过最大值,将会产生数组越界异常( ArrayIndexOutOfBoundsException )数组名是一个引用,以以下代码为例:public class Arrays {public static void main(String []args) {int [] a1 = {1, 2, 3, 4, 5};int [] a2 = a1;for(int i=0; i

运行结果:

当运行int [] a2 = a1; 这一步时,并不是复制一个数组给a2,只是把引用a1赋值给引用a2。实际上a1,a2操作的是同一个数组。

数组的复制

使用方法System.arraycopy(src, srcPos, dest, destPos, length);

其中src为被复制数组,srcPos为被复制数组起始下标,dest为复制数组,destPos为复制数组下标,length为想要复制的长度。

以下代码用于复制copyFrom从下标2开始的长度为7的数组。

public class ArraysCopy {public static void main(String []args) {char[] copyFrom = {'a','b','c','d','e','f','g','h','i','j','k'};char[] copyTo = new char[7];System.arraycopy(copyFrom, 2, copyTo, 0, 7);System.out.println(new String(copyTo));}}

运行结果:

多维数组

类似一维数组,以二维数组为例:

声明

定义引用

int[][] a;

定义引用+构造数组

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

定义引用,构造数组,初始化数组元素。

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

二维数组的长度及每行的长度

二维数组的长度为行数

二维数组每一行的长度为每一行的列数

public class Arrays {public static void main(String []args) {int[][] Array = {{1, 2, 3}, {1, 2}, {8, 9, 10, 20, 50}};System.out.println("Length of array is " + Array.length);for(int i=0; i<3; i++)System.out.println("Length of row[" + i +"] = " + Array[i].length);}}

运行结果:

取二维数组最大值_学习Java,你必需要知道这些——Java数组相关推荐

  1. 二维矩阵乘法、矩阵转置、 矩阵与向量乘法(java实现)

    二维矩阵乘法.矩阵转置. 矩阵与向量乘法(java实现) 相关代码如下: package algorithms; //矩阵库 public class Matrisx { /***向量点相乘 doub ...

  2. 拼图登陆拼图二维码验证_另一个拼图观点

    拼图登陆拼图二维码验证 在过去的几周中,围绕Java 9即将发布及其最著名的功能:Java平台模块系统JPMS进行了激烈的辩论. –以其项目名称Jigsaw更为人所知. 模块系统以正式规范过程的形式引 ...

  3. 二维码简介_二维码基本概念_二维码基本原理

    一.二维码简介_二维码基本概念_二维码基本原理 1.二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Ba ...

  4. java把二维转换为一维_在R语言中什么函数可以将二维数组转换成一维数组

    满意答案 vi31892i 2013.09.11 采纳率:44%    等级:11 已帮助:6956人 这好象是汇编语言的问题吧 举个例子吧 #include "iostream.h&quo ...

  5. mysql二维转一维_二维数组转为一维数组

    1.很多时候会遇到二维数组,转为一维数组的时候会很苦恼,尤其是刚刚接触PHP的phper. 如下:将$arr转化为一维数组 $arr = Array ( Array ( 'uuid' => 'a ...

  6. foreach 二维java_教你如何用for和foreach循环遍历java中的二维数组

    一:先来说说for和foreach循环的区别 for和foreach的区别 foreach语句是java5的新特征之一,在遍历数组.集合方面,foreach为开发人员提供了极大的方便. foreach ...

  7. java二维码生成_如何使用 Java 生成二维码?

    精品专栏 <GitHub:中文详细注释的开源项目> 1. 下载jar包(QRCode.jar)2. maven项目手动引入jar包3. 编写实体类实现二维码的生成4. controller ...

  8. python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算

    前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...

  9. python二维元素向量_详解python Numpy中求向量和矩阵的范数

    在python Numpy中求向量和矩阵的范数实例 np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数. 函数参数 x_norm=n ...

最新文章

  1. 一般将来时语法课教案_「英语语法」一般过去时用法技巧全解
  2. 创建, 发布自己的 Vue UI 组件库
  3. ajax后台返回数据中文乱码_ajax提交 返回中文乱码问题
  4. Android Gradle查询器
  5. think in uml-关系
  6. Avalonia跨平台入门第一篇
  7. 985硕博士:你为什么比我差?
  8. 5-1WordCount单词计数
  9. openresty json mysql_openresty 前端开发入门五之Mysql篇
  10. File Operation
  11. python-excel写入代码
  12. java简单的学生管理系统界面_java 学生信息管理系统(图形界面)
  13. 好用用的linux 监控命令
  14. 03ospf虚链路(Virtual Link)及冗余
  15. 第2章 业务:数据驱动运营
  16. java word 分页显示_Java 在Word中插入分页符、分节符
  17. java kdj_KDJ 指标简单实现
  18. Win10客户端 ssh 远程连接 win server 2008 R2服务器
  19. 华为鸿蒙harmonyos-面向全场,华为鸿蒙 OS 下月发布?别做梦了……
  20. 三星推出体积更小的1亿像素图像传感器产品线;66%中企没看到数字化投资促进收入增长 | 美通企业日报...

热门文章

  1. ACCESS使用VBA编辑器,ACCESS崩溃后的处理
  2. “Replit 威胁我,要求我关闭我的开源项目!”
  3. 总是收到 i/o timeout 报错,这里有 HTTP 的避坑指南!
  4. ​苏宁回应股权质押给淘宝:正常合作;苹果App Store被越狱商店指控垄断;Docker 20.10.0发布|极客日报...
  5. 图灵奖得主 John E. Hopcroft 等 300 余位 AI 学者“穿越”回宋代开国际 AI 大会,这场面你见过吗?
  6. 微软与 OpenAI 达成合作,获得 GPT-3 独家使用授权!
  7. “恭喜那些拿到 Java 月薪 2 万 Offer 的人”
  8. 漫画:什么是流行病的 R0 和 R ?
  9. 2020 年,网络安全方面 5 大值得学习的编程语言
  10. 听说Java老古董了?快被淘汰了?高级开发:我还就真看上它了!