java数组学习

2023-11-19

2021-2.2 数组
一维数组的使用
1、一维数组的声明和初始化
2、如何调用数组的指定位置的元素
3、如何获取数组的长度
4、如何遍历数组
5、数组元素的默认初始化值
6、数组的内存解析

package day01;

import java.util.Arrays;

public class Array01 {
	public static void main(String[] args) {

		// 1、一维数组的声明和初始化
		int num; // 声明
		num = 10; // 初始化
		int id = 1001; // 声明+初始化

		int[] ids; // 声明
		// 静态初始化:数组的初始化和数组元素的赋值操作同时进行
		ids = new int[] { 1001, 1002, 1003, 1004 };
		// 动态初始化:数组的初始化和数组元素的赋值操作分开进行
		String[] names = new String[5];

		// 数组一旦初始化完成其长度也就确定了

		// 2、如何调用数组的指定位置的元素:通过角标的方式调用
		// 数组的索引从零开始,到数组的长度-1结束
		names[0] = "张无忌";
		names[1] = "赵敏";
		names[2] = "迪迦";
		names[3] = "赛罗";
		names[4] = "戴拿";
		System.out.println(Arrays.toString(names));

		// 3、如何获取数组的长度:length属性
		System.out.println(names.length);
		System.out.println(ids.length);

		// 4、如何遍历数组
		for (int i = 0; i < names.length; i++) {
			System.out.println(names[i]);
		}
	}
}


默认初始化

package day01;

import java.util.Arrays;

public class Array01 {
	public static void main(String[] args) {
		// 数组元素的默认初始化值
		int[] arr = new int[4];
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
			//这里输出的全是0
		}
		String [] arr1=new String[4];
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr1[i]);
			//值全为null
		}
	}
}

数组内存结构
在这里插入图片描述
在这里插入图片描述
二维数组的使用:

package day01;

public class Arrays02 {
public static void main(String[] args) {
	//二维数组的初始化和声明
	int [] arr = new int [] {1,2,3};//一维数组的初始化
	
	//静态初始化
	int[][] arr1=new int [] [] {{1,2,3},{4,5,6}};//二维数组
	//动态初始化
	//动态初始化1
	String[][] arr2= new String[3][2];
	String[][] arr3= new String[3][];
	//动态初始化2
	
	//如何掉用数组的指定位置元素
	System.out.println(arr1[0][1]);//2
	System.out.println(arr2[1][1]);//因为,没有赋过值   所以是null
	
	//获取数组的长度
	System.out.println(arr1.length);//2
	System.out.println(arr1[0].length);//3
	
	//如何遍历二维数组
	for(int i=0;i<arr1.length;i++) {
		for(int j=0;j<arr1[i].length;j++) {
			System.out.println(arr1[i][j]+" ");
		}
		System.out.println();
	}
  }
}
package day01;

public class Arrays02 {
public static void main(String[] args) {
	//数组元素的默认初始化
	int[][] arr=new int[4][3];
	System.out.println(arr[0]);//[I@15db9742
	System.out.println(arr[0][0]);//0
	
	System.out.println(arr);//[[I@6d06d69c
	
	String[][] arr2=new String[4][2];
	System.out.println(arr2[1]);//[Ljava.lang.String;@7852e922
	System.out.println(arr2[1][1]);//null
  }
}
 

二维数组内存解析
在这里插入图片描述
二维数组的和

package day01;

public class Array03 {
public static void main(String[] args) {
	int [][] arr=new int[][] {{1,2,3},{2,4,5,6},{4,56,7}};
	int sum=0;
	for(int i=0;i<arr.length;i++) {
		for(int j=0;j<arr[i].length;j++) {
			sum+=arr[i][j];
		}
	}
	System.out.println(sum);
}
}
package day01;

/*
 * 声明一个int型的一维数组,包含10个元素,分别赋一些随机整数
 * 然后求出所有元素的最大值,最小值,和值,平均值,并输出
 * 所有随机数都是两位数
 */
public class Array02 {
	public static void main(String[] args) {
		int[] arr = new int[10];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int) (Math.random() * (99 - 10 + 1) + 10);
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "\t");
		}
		System.out.println();
		
		
		// 求数组的最大值
		int max = 0;
		for (int i = 0; i < arr.length; i++) {
			if (max < arr[i]) {
				max = arr[i];
			}
		}
		System.out.println("最大值:" + max);
		
		
		// 求数组的最小值
		int min = arr[0];
		for (int j = 1; j < arr.length; j++) {
			if (min > arr[j]) {
				min = arr[j];
			}
		}
		System.out.println("最小值" + min);
		
		// 求数组的和
		int sum=0;
		for(int i=0;i<arr.length;i++) {
			sum+=arr[i];
		}
		System.out.println("总和:"+sum);
		
		// 求数组的平均数
		int avg=sum/arr.length;
		System.out.println("平均数:"+avg);
	}
}
package day01;


public class Array04 {
	public static void main(String[] args) {

		int[] array1, array2;

		array1 = new int[] { 2, 3, 5, 7, 11, 13, 17, 19 };

		// 显示array1的内容(遍历)
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + "\t");
		}

		// 赋值array2变量等于array1
		array2 = array1;

		// 修改array2中的偶数索引,使其等于索引值(array[0]=0,array[2]=2)
		for (int i = 0; i < array2.length; i++) {
			if (i % 2 == 0) {
				array2[i] = i;
			}
		}
		System.out.println();
		// 打印出array1
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + "\t");
		}
	}
}

数组赋值的结果
在这里插入图片描述

package day01;

public class Array05 {
	public static void main(String[] args) {
		
	int[] array1, array2;

	array1 = new int[] { 2, 3, 5, 7, 11, 13, 17, 19 };

	// 显示array1的内容(遍历)
	for (int i = 0; i < array1.length; i++) {
		System.out.print(array1[i] + "\t");
	}

	// 数组的复制
	array2 =new int[array1.length];
	for(int i=0;i<array2.length;i++) {
		array2[i]=array1[i];
	}

	// 修改array2中的偶数索引,使其等于索引值(array[0]=0,array[2]=2)
	for (int i = 0; i < array2.length; i++) {
		if (i % 2 == 0) {
			array2[i] = i;
		}
	}
	System.out.println();
	// 打印出array1
	for (int i = 0; i < array1.length; i++) {
		System.out.print(array1[i] + "\t");
	}
}
}

数组复制的结果

package day01;

public class Array05 {
	public static void main(String[] args) {

		int[] array1, array2;

		array1 = new int[] { 2, 3, 5, 7, 11, 13, 17, 19 };

		// 显示array1的内容(遍历)
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + "\t");
		}

		// 数组的复制
		array2 = new int[array1.length];
		for (int i = 0; i < array2.length; i++) {
			array2[i] = array1[i];
		}

		// 修改array2中的偶数索引,使其等于索引值(array[0]=0,array[2]=2)
		for (int i = 0; i < array2.length; i++) {
			if (i % 2 == 0) {
				array2[i] = i;
			}
		}
		System.out.println();
		// 打印出array1
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + "\t");
		}
	}
}

数组的复制及反转

package day01;

import java.util.Arrays;

public class Arraycop {
	public static void main(String[] args) {
		String[] arr = new String[] { "AA", "BB", "CC", "DD" };

		// 数组的复制
		String[] arr1 = new String[arr.length];
		for (int i = 0; i < arr.length; i++) {
			arr1[i] = arr[i];
//			System.out.print(arr1[i] + "\t");
		}

		// 数组的反转
		for (int i = 0; i < arr.length / 2; i++) {
			String temp = arr[i];
			arr[i] = arr[arr.length - i - 1];
			arr[arr.length - i - 1] = temp;
		}

		// 遍历
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "\t");
		}
	}
}

数组的线性查找

package day01;

public class Array06 {
	public static void main(String[] args) {
		String[] arr = new String[] { "AA", "BB", "CC", "DD" };

		// 查找、线性查找
		String lookup = "BB";

		boolean flag = true;

		for (int i = 0; i < arr.length; i++) {
			if (lookup.equals(arr[i])) {
				flag = false;
				System.out.println("找到了指定元素,位置在" + i);
				break;
			}
		}
		if (flag) {
			System.out.println("很遗憾没找着");
		}
	}
}

数组的二分法查找

package day01;

public class Array07 {
	public static void main(String[] args) {
		
	int[] arr = new int[] {-89,14,-5,89,47,36,45,78,12};
	
	//二分法查找(必须是一个有序数组)
	
	int lookup=47;
	int head=0;//初始的首索引
	int end=arr.length-1;//初始的末索引
	boolean flag=true;
	while(head <end) {
		int minddle=(head+end)/2;
		if(lookup==arr[minddle]) {
			System.out.println("你要找的数在"+minddle);
			flag=false;
			break;
		}else if(arr[minddle]>lookup) {
			end = minddle-1;
		}else {
			//arr[minddle]<lookup) 
			head = minddle+1;
		}
	}
	if(flag==true) {
		System.out.println("你要找的数没找着");
	}
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java数组学习 的相关文章

  • 数据结构与算法2--数组常见操作

    数据结构与算法2 数组常见操作 数组是最常见也是我们使用最多的数据结构了 它是一块连续的内存空间 以下标来描述空间的位置 C 中int arr len 表示的的数组一旦配置后大小就无法改变 vector
  • java基础:日志框架

    文章目录 一 日志技术的概述 二 日志技术体系 三 Logback日志框架 四 Logback快速入门 五 Logback 配置详解 5 1 输出位置 格式设置 5 2 对日志不同内容是否输出的控制 一 日志技术的概述 程序中的日志可以用来
  • 字符“&”在XML文件中需要被转义

    今天弄Mybatis的配置文件时 因为这样一条语句
  • 什么是多态?对于多态的理解....

    什么是多态 我们都知道面向对象有四个基本特性 抽象 封装 继承 多态 概括可以理解为 抽象 封装 继承 是多态的基础 多态是抽象 封装 继承的表现 多态 是Java中非常重要的一部分 简单理解 不同类的 对象 对同一消息 做出了不同的响应就
  • mysql如何一秒插入10万条数据

    当我们需要批量插入或者更新记录时 可以采用Java的批量更新机制 该机制允许多条语句甚至一次性提交给数据库处理 通常情况下比一句一提交处理更有效率 jdbc处理批量提交有三个方法 需要注意的是 这三种方法都要和PreparedStateme
  • 动力节点老杜java基础视频笔记第一章 学前准备 (1)

    课堂截图 为什么使用截图工具 在听课的过程中 有的时候老师操作的比较快 通过截图的方式将老师的操作保存下来 以便后期的操作 另外截图之后的图片也可以用于笔记的记录 在笔记当中最好采用图文并茂的方式 这样更加利于知识的回顾 使用哪个截图工具
  • 接口如何实现多态

    抽象类是用来继承的 不能被实例化 抽象类里可以有成员变量 接口中没有 1 抽象类里的抽象方法 只有在子类实现了才能使用 2 抽象类里的普通方法 可被子类调用 3 接口里的方法 都被默认修饰为public abstract类型 4 接口里的变
  • 集合addAll方法使用存在的问题。

    集合addAll 方法的时候 这里里有两个集合 集合2要拿到集合1中的元素 然后对集合2进行removeAll方法 结果集合1中的值也没有了 只是因为listTwo listOne 只是把集合1的引用给了集合2 集合1和集合2的引用是指向同
  • JAVA中的while do-while循环以及for循环的深刻理解 入门 小白必看

    循环 循环 循环 循环的作用 提出问题为什么需要循环 解决问题循环的出现 while 前序 循环 while循环的语法与流程以及细节 do while 后序循环 do while循环的语法和流程 while和do while 之间的区别 f
  • Java中的IO流如何理解——精简

    目录 引言 缓冲流 字节缓冲流 字符缓冲流 转换流 字符输入转换流 字符输出转换流 序列化和反序列化 对象序列化 对象反序列化 打印流 Properties 引言 通过前面的简单学习 我们已经能够大致了解了关于文件的操作 但是能够明显感受到
  • 各种注释总结

    jsp注释 html注释
  • JAVA,异常

    异常概念 通常大家认为异常就是错误 但这个错误有很多种 1 语法错误 2 JVM虚拟机错误 3 平台错误 4 程序运行错误 平台或者资源或者逻辑 数值等错误 常见的异常 1 java lang NullPointerException 空指
  • java动态加载jar包,并运行其中的类和方法

    flink 相关 https www toutiao com article 6883793897495986691 动态加载jar包 在实际开发中经常会需要用到 尤其涉及平台和业务的关系的时候 业务逻辑部分可以独立出去交给业务方管理 业务
  • 《编写高质量代码:改善Java程序的151个建议》读书笔记

    编写高质量代码 改善Java程序的151个建议 秦小波 67个笔记 前言 本书附带有大量的源码 下载地址见华章网站www hzbook com 建议11 养成良好习惯 显式声明UID SerialVersionUID 也叫做流标识符 Str
  • js 对数组对象进行排序

    let listData id 1 name 测试1 presenttime 1557883600000 id 2 name 测试2 presenttime 1580751813000 id 3 presenttime 1561448381
  • Java对象的快速复制的几种方式

    浅拷贝 深度复制 BeanUtils copyProperties 对象的克隆是指创建一个新的对象 且新的对象的状态与原始对象的状态相同 当对克隆的新对象进行修改时 不会影响原始对象的状态 注释 clone 是object类的protect
  • IDEA 编写JDBC 第一个示例

    知心惟有雕梁燕 自来相伴 东风不管琵琶怨 落花吹遍 一 新建一个Module 二 在此Module下新建一个包 在包再建一个包 命名为lib 三 导入mysql驱动 四 将mysql驱动添加到项目的库里 五 代码实现 package Con
  • 关于svn如何上传一个完整的项目

    注意 请一定要按照该步骤进行操作 请上传新项目时将项目名称进行规范命名 例如原始文件是arrange v2 将此项目需要注入新的医院 则命名为 arrange 某医院名称 门诊或者医技或者药房 v2 重新命名文件夹名称快捷键 F12 一 先
  • 黑豹程序员-统一身份认证接口

    术语和定义 1 IAM Identity Access Manager 统一身份认证系统 2 IDM Identity Manager 身份管理 3 SSO Single Sign On 单点登录 4 AD Active Directory
  • 黑豹程序员-统一身份认证接口

    术语和定义 1 IAM Identity Access Manager 统一身份认证系统 2 IDM Identity Manager 身份管理 3 SSO Single Sign On 单点登录 4 AD Active Directory

随机推荐

  • 随机森林(RFC)实现模型优化与特征提取

    随机森林既可以进行分类也可以进行回归预测 这里通过随机森林 RFC 模型对汽油辛烷值RON进行特征提取与模型优化 一 导入相关的数据库 import matplotlib pyplot as plt from sklearn ensembl
  • MyBatis介绍及教程

    MyBatis简介 MyBatis 是支持定制化 SQL 存储过程以及高级映射的优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis 可以对配置和原生Map使用简单的 XML 或注解
  • 华为OD机试 - 叠积木(Java)

    题目描述 有一堆长方体积木 它们的宽度和高度都相同 但长度不一 小橙想把这堆积木叠成一面墙 墙的每层可以放一个积木 也可以将两个积木拼接起来 要求每层的长度相同 若必须用完这些积木 叠成的墙最多为多少层 输入描述 输入为一行 为各个积木的长
  • python安装出错

    按照python 程序时候报错 没有更新python 版本 按照上面查看的 pyhon3 m pip install upgrade pip 将命令行路径移到安装python目录下 输入 python exe m pip install u
  • 时间戳获取

  • 在Nuxt应用程序中关闭webpack-hot-middleware客户端覆盖

    有时候 因为代码的语法错误 nuxt界面会弹出 但是 有时候因为缓等原因 即使修复了语法错误 这个提示错误的界面仍然存在 那么 出现这种情况 怎么禁止出这个界面弹出 该如何关闭它呢 在nuxt config js当中配置 overlay f
  • Linux-MYSQL

    1 C语言连接mysql 读 写 2 视图 索引 事务 端口 3306 一 基本操作 1 源码安装 2 命令安装 sudo su gt apt install mysql server 查看进程是否再运行 service mysql sta
  • 20天学会Java-基础阶段笔记

    视频地址 https www bilibili com video BV1Cv411372m 此笔记是 P1 P85 1 开始 1 1 注释 理解 注释是对代码的解释和说明文字 可以提高程序的可读性 因此在程序中添加必要的注释文字十分重要
  • 【千律】C++基础:通过递归函数计算N的阶乘

    include
  • 修改照片尺寸25mm*35mm

    打开方式 画图 gt 调整图片大小 选择像素 gt 修改为295 413即可
  • OpenCloudOS 8 安装rabbitMQ 和Docker

    文章目录 安装环境 Docker CE 安装rabbitMq 安装步骤 1 引入签名 2 为 RabbitMQ 和 Modern Erlang 添加 Yum 仓库 3 更新yum元数据 缓存rabbitmq相关的仓库数据 4 yum安装依赖
  • vue + moment 实现倒计时

    示例 代码 span countDown endDate span 引入日期插件 import moment from moment export default data return now moment endDate 2019 05
  • Windows和iPad传输

    一 电脑操作 1 新建文件夹 2 设置文件夹的属性 选着共享 3 设置高级共享 权限选择完全控制 4 选择共享 选择Everyone 5 在windows搜索栏中输入cmd 打开命令提示符窗口 6 输入ipconfig回车 7 记住你的ip
  • python爬取豆瓣电影json数据

    由于豆瓣里的电影都有专属的id 获取到id后可以进一步爬取其他页面的内容 首先来到主界面 https movie douban com 观察网页 点击 选电影 进入需要爬取的界面 打开Chrome开发模式 并下拉网页观察新生成的文件 可以观
  • Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘xxx‘ cannot be null

    1 报错信息 2 定位错误的范围 SQL insert into business businessId password salt businessName businessAddress businessExplain starPric
  • 【基于Cocos Creator实现的赛车游戏】9.实现汽车节点的控制逻辑

    转载知识星球 深度连接铁杆粉丝 运营高品质社群 知识变现的工具 项目地址 赛车小游戏 基于Cocos Creator 3 5版本实现 课程的源码 基于Cocos Creator 3 5版本实现 在上一节的课程中 您已经实现了通过触控给刚体施
  • RCP系列-第一章 环境安装

    RCP系列文章 第一章 Matlab安装 Matlab安装 RCP系列文章 前言 一 Matlab 获取 二 安装 1 解压 2 打开解压后的文件夹中的 R2018b win64 文件夹 3 鼠标右击 setup 选择 以管理员身份运行 4
  • oswatch的安装和使用

    author skate time 2011 08 06 oswatch的安装和使用 1 下载和安装 oswatch的安装与使用也比较简单 和nmon一样 都是下载后直接解压就可以使用的 oswatch是通过调用系统的命令完成信息的收集 命
  • 【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)

    前言 哒哒 时隔好久终于继续出论文带读了 这次回归当然要出一手王炸呀 没错 今天我们要一起学习的就是传说中的Transformer 在2021年Transformer一经论文 Attention is All You Need 提出 就如龙
  • java数组学习

    2021 2 2 数组 一维数组的使用 1 一维数组的声明和初始化 2 如何调用数组的指定位置的元素 3 如何获取数组的长度 4 如何遍历数组 5 数组元素的默认初始化值 6 数组的内存解析 package day01 import jav