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数组相关内容复习

·引用数据类型,数组中的元素可以是任何类型的数据

·Java中的数组名仍为数组的首地址

·数组长度确认之后就无法改变

两种初始化方式

·静态初始化

public class arraytext
{
	public static void main(string[] args)
	{
		int[] ids;//表明ids是数组,此时是声明
		ids = new int[] {1, 2, 3, 4};//这一步为初始化和赋值
	}
};
//此处初始化方式为静态初始化,数组的初始化和元素的赋值同时进行
//与动态初始化的区别就在于初始化和赋值的顺序

·动态初始化

public class arraytext
{
	public static void main(string[] args)
	{
		String names = new String[5];
	}
};
//此处只有声明,将赋值操作和初始化分隔开
//此时要确定数组的的长度

二者比较和使用时的注意事项

public class arraytext
{
	public static void main(string[] args)
	{
		string names = new String[5];
		//动态初始化
		int[] ids;
		ids = new int [] {1, 2, 3, 4};
		//静态初始化
		int[]arr1 = { 1,2,3,4 };
		int[]arr2 = new int[5];
		arr2 = { 1,2,3,4,5 };
	}
};
//此处的[]

//int[] ids,此处的[]相当于是强调ids是一个int类型的数组,是不可以加入任何数字的

//String[5],此处的[5]是用来规定数组长度,但是如果在此处的[]中有数字的话,就不
//能够再进行赋值了,[]中没有数值才能够进行赋值

//int []{1,2,3,4}此处是没确定长度的数组元素去通过赋值确定长度。

//此处的赋值操作

//arr1的赋值操作,相当于是静态初始化省略掉new int[]

//但是对于动态初始化的arr2而言,这样声明是错误的,new int是不能够省略的

数组长度的获取

public class arraytext
{
	public static void main(string[] args)
	{
		int[] ids;
		ids = new int [] {1, 2, 3, 4};
		System.out.println(ids.length);
	}
};
//System.out.println()是系统输出函数
//如果只是单纯获取长度,只需要使用“数组名.length”

数组的遍历

public class arraytext
{
	public static void main(string[] args)
	{
		int[] ids;
		ids = new int [] {1, 2, 3, 4};
		for (int i = 0; i < ids.length; i++)
		{
			System.out.println(ids[i]);
		}
	}
};
//在Java中依旧可以使用“数组名称[下标]”来调用指定位置的元素

数组的默认初始化值

数据类型默认初始化值
整型(byte、short、int、long)0
浮点型(float、double)0.0
字符型(char)ascII码等于0的符号
布尔型(boolean)Flase
数组元素为引用数据类型null

数组的内存解析

?二维数组声明

可以将一维数组arr1又作为另一个数组arr2的元素存在

从数组的底层运行机制来看,其实并没有多维数组

public class arraytext
{
	public static void main(string[] args)
	{
		int[][]arr1 = new int[][]{ {1,2,3},{4,5},{6,7,8} };
		//静态初始化
		String[][]arr2 = new String[3][2];
		String[][]arr2 = new String[3][];
        //动态初始化
	}
};
//动态初始化的第二种虽然可以成功在堆空间为数组申请出空间,但是直接调用依旧会报错
//会要求完善数组才能够调用和赋值
//arr2[1]=new String[4]
//完善过程如上

二维数组的长度

只要是数组类型的数据,就有length的选项

从二位数组的定义去理解,上图所举出的例子而言,arr2.length的结果应该是3,但如果是arr2[1].length的结果就是2

二维数组的打印

public class arraytext
{
	public static void main(string[] args)
	{
		int[][]arr1 = new int[][]{ {1,2,3},{4,5},{6,7,8} };
		System.out.println(arr1[0]);
//此时打印的应该是对应arr1[0]的地址
		System.out.println(arr1[0][1]);
//此时打印出的结果应该是具体默认值或者是存入的数字
	}
};

二维数组的存储

数组的内容大致结束了,需要注意的点就是Java二维数组的运算机制,在对二维数组进行定义的时候,第一个[]必须要有数字,先完善外层数组,内层数组可以再次逐个定义,Java二维数组的运算机制与c语言的二维数组存储和运算机制有区别,所以在二维数组的存储和调用之间有不尽相同的点。同时还需要注意数组的静态初始化和动态初始化,动态初始化不可以使用{}对数组中的元素进行赋值,而静态初始化可以。静态初始化和动态初始化的最大区别就是赋值和声明的过程,静态初始化声明与赋值在一起,但是动态初始化是先声明再进行赋值。同时还要注意数组名本身代表的是地址,在这个地方要尤为注意对值传递和址传递的区别。在堆空间中,如果在栈空间中没有存储该地址的变量的话,会自动将这一块申请出来的空间销毁,址传递可能会造成一个空间的消失,所以使用址传递和值传递的时候要尤为注意。与C语言数组不同的是,Java数组存在默认值,且非引用数据类型的初始默认值为null,对于C语言数组不存在初始默认值,里面是一个随机的数字。

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:50:45-

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