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知识库]Java笔记之数组

如果需要存储大量的数据,,这时就需要数组的作用。

数组的概念

数组是存储很多个同一数据类型的值的容器,数组是同一数据类型的集合,数组其实是存储数据的一种方式,数组一旦定义好,里面的数据类型即确定。特点:类型相同,长度固定,数组从0开始编号第一个数字。

数组的定义

数组的创建:

元素数据类型[] 数组名 =new 元素类型[元素个数或数组长度]

int[] arr=new int [5]

声明数组变量 必须在程序中声明数组,并指定数据类型,标识数组我们用[] 来标识,定义数组的名称arr,格式为int[] arr

创建数组 要使用一个新的关键字叫做new,new用来在内存中产生一个容器实体,数据要存储时需要空间的,空间就用new操作符开辟new int[5],表示这个数组有5个int元素,这个部分就是在内存中定义了一个真实存在的数组,能存储5个元素,注意这里是做了两件事情,第一件是创建了一个数组,然后把这个数组的引用赋值给变量x

注意这个arr不是int类型的,int只是这个容器内元素的数组类型,数组其实是单独的数据类型,数据类型有两大派,第一大是引用数据类型,第二派是基本数据类型,数组就是引用数据类型。

定义数组有两种格式:

元素类型[] 数组名 = new 元素类型[元素个数或数组长度];?
示例:int[] arr1 = new int[5];
示例:float[] arr2 = new float[5];
格式二:

元素类型[] 数组名 = new 元素类型[]{元素,元素,……};?
int[] arr1 = new int[]{3,5,1,7};?
float[] arr2 = {1.3,1.5,1.1,1.7};
注意的是:在给数组分配空间的时候,必须指定数组能存储的元素个数来确定数组的大小,体现了数组长度固定这一特点,

数组的初始化

数组的声明与赋值

int arr[]=new int [2];
a[0]=10;
a[1]=20;

另一种方式也可以直接明确数组的长度,以及数组中的内容:

int[] arr=new int[]{20,30,40};
int[] arr={30,20,40};

如果不写new就一定要指定数组的内容

数组下标的有效范围与常见的异常

1.ArrayIndexOutOfBoundsException 索引值越界异常。 也就是数组下标超出了有效范围。

例如创建一个int[] arr=new int[2];

如果程序输出a[3]的话就会报错,原因是

它的有效下标是0,1,2,并没有3.一旦我们访问不在范围内的下标,就会产生数组下标越界异常。

2.NullPointerException 空指针异常 引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。

数组内存分析

栈内存:栈内存存储的都是局部变量,变量一旦出了自己的作用域,那么就会马上在内存中消失,释放内存空间。

堆内存:堆内存存储的都是对象内存,对象一旦用完不是马上从内存中消失,而是等待垃圾回收器不定时把垃圾对象回收,这个时候对象消失,释放内存。

凡是以new关键字创建的对象,jvm都会在堆中开辟一个新的空间创建一个新的对象。对象如果没有变量引用,它就是垃圾对象。

创建二维数组

二维数组可以看作是特殊的一维数组,有两种声明的方式:

数组元素类型 数组名字[][];
数组元素类型[][] 数组名字;
int arr1[][]; 
char[][] arr2;

二维数组也要用new关键字来分配内存,然后才可以访问每个元素,为二维数组分配内存有两种方式

int a[][];
a = new int[2][4]; ?//直接分配行类
int b[][];
b = new int[2][]; ? //先分配行,再分配列
b[0] = new int[2]; ?//给第一行分配列
b[1] = new int[2]; ?//给第二行分配列
创建二维数组的时候可以只声明列的数量,但是只说明行的数量就是错误的。

二维数组的赋值

public class InitTDArray {
	public static void main(String[] args) {
		/* 第一种方式 直接赋值*/
		int tdarr1[][] = { { 1, 3, 5 }, { 5, 9, 10 } };
		/* 第二种方式 用new的方法*/
		int tdarr2[][] = new int[][] { { 65, 55, 12 }, { 92, 7, 22 } };
		/* 第三种方式 分配内存对元素分别赋值*/
		int tdarr3[][] = new int[2][3]; // 先给数组分配内存空间
		tdarr3[0] = new int[] { 6, 54, 71 }; // 给第一行分配一个一维数组
		tdarr3[1][0] = 63; // 给第二行第一列赋值为63
		tdarr3[1][1] = 10; // 给第二行第二列赋值为10
		tdarr3[1][2] = 7; // 给第二行第三列赋值为7
	}
}

数组的基本操作

1.遍历数组,即获取数组中的每一个元素,用两层for循环来实现,通过length来获取数组的长度

例子:

public class Trap {
	public static void main(String[] args) {
		int b[][] = new int[][] { { 1 }, { 2, 3 }, { 4, 5, 6 } }; // 定义二维数组
		for (int k = 0; k < b.length; k++) { // 循环遍历二维数组中第一个索引
			for (int c = 0; c < b[k].length; c++) { // 循环遍历二维数组中第二个索引
				System.out.print(b[k][c]); // 将数组中的元素输出
			}
			System.out.println(); // 输出换行
		}
	}

注意a.length返回的是数组的行数,a[0].length返回的是第一行的列的数量

填充和替换数组中的元素

使用fill()方法

import java.util.Arrays; //导入java.util.Arrays类

public class Swap {
	public static void main(String[] args) {
		int arr[] = new int[5]; // 创建int型数组
		Arrays.fill(arr, 8); // 使用同一个值对数组进行填充
		for (int i = 0; i < arr.length; i++) { // 循环遍历数组中的元素
			// 将数组中的元素依次输出
			System.out.println("第" + i + "个元素是:" + arr[i]);
		}
	}
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:46:11  更:2021-07-17 11:47:15 
 
开发: 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年5日历 -2024/5/8 10:08:07-

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