I学霸官方免费教程二十七:Java基础教程之Arrays类

Arrays类

数组的一个工具类,提供了一些静态的方法,用于操作数组;
不多说,直接上例子

实例:
//声明包
package array;
//导入包
//作用:告诉系统,ArraysDemo类中用到Arrays类时去java.util包下找Arrays类
import java.util.Arrays;
/**
 * 演示Arrays类的常用方法
 * @author 学霸联盟 - 赵灿
 */
public class ArraysDemo {
	public static void main(String[] args) {
		// 声明三个数组
		int[] array1 = { 1, 2, 3 };
		int[] array2 = { 1, 2, 3 };
		int[] array3 = { 1, 2, 3, 6, 5, 4 };

		System.out.println("---------- 比较两个数组 ----------");
		//比较数组array1和array2中的内容是否相同
		boolean compare12Result = Arrays.equals(array1, array2);
		//比较数组array2和array3中的内容是否相同
		boolean compare23Result = Arrays.equals(array1, array3);
		System.out.println("array1和array2的比较结果为:"+compare12Result);
		System.out.println("array2和array3的比较结果为:"+compare23Result);

		/*
		 * 第一个参数:传入被复制的数组,第二个参数:复制的新数组长度
		 * 当新数组的长度大于旧数组长度时,多出的部分用数据类型对应的默认值填充
		 * array1:[1, 2, 3]使用以下代码复制后arrayCopy:[1, 2, 3, 0, 0]
		 */
		int[] arrayCopy = Arrays.copyOf(array1, 5);
		System.out.println("----------- 原数组 -----------");
		//遍历原数组
		arrayToString(array1);
		System.out.println("----------- 复制的数组 -----------");
		//遍历复制的数组
		arrayToString(arrayCopy);

		System.out.println("---------- 替换值前的数组 ----------");
		//遍历替换前的数组array1
		arrayToString(array1);
		System.out.println("---------- 替换值后的数组 ----------");
		/*
		 * 将数组中所有的值替换为同一个值
		 * 第一个参数:被替换的数组
		 * 第二个参数:替换后的值
		 */
		Arrays.fill(array1, 10);
		//遍历替换后的数组array1
		arrayToString(array1);

		System.out.println("---------- 排序前的数组 ----------");
		//遍历排序前的数组array3
		arrayToString(array3);
		//给数组array3排序(只能按升序排序)
		Arrays.sort(array3);
		System.out.println("---------- 排序后的数组 ----------");
		//遍历排序后的数组array3
		arrayToString(array3);

		System.out.println("----- 使用二分法(折半)查找元素 -----");
		//使用二分法查找数组中的元素,被查找数组必须按升序排序
		int index = Arrays.binarySearch(array3, 4);
		System.out.println("4在数组array3中的下标是:" + index);
	}

	/**
	 * 将数组转换为字符串形式,并输出
	 */
	private static void arrayToString(int[] array) {
		//将数组内容转换为字符串 
		String arrayStr = Arrays.toString(array);
		System.out.println(arrayStr);
	}
}
运行结果:
--------- 比较两个数组 ---------
array1和array2的比较结果为:true
array2和array3的比较结果为:false
----------- 原数组 -----------
[1, 2, 3]
----------- 复制的数组 -----------
[1, 2, 3, 0, 0]
--------- 替换值前的数组 ---------
[1, 2, 3]
--------- 替换值后的数组 ---------
[10, 10, 10]
--------- 排序前的数组 ---------
[1, 2, 3, 6, 5, 4]
--------- 排序后的数组 ----------
[1, 2, 3, 4, 5, 6]
----- 使用二分法(折半)查找元素 -----
4在数组array3中的下标是:3
时间: 2024-11-05 12:09:27

I学霸官方免费教程二十七:Java基础教程之Arrays类的相关文章

I学霸官方免费教程二:Java简介和开发环境配置

一.     Java简介 至于Java的历史,网上很多,有兴趣的同学自行了解即可,这里起步阶段只做简单介绍,后面有用到的地方在详细讲解,如有疑问,可以联系我们,个人资料中有联系方式. 编译方面 Java语言既使用了编译,也使用解释 源文件:源代码(开发人员编写产生):存储在源文件(xxx.java文件)中 编译器:字节码文件(编译产生):存储在字节码文件(xxx.class文件)中 解释器:解释执行字节码文件 这样做的好处是,在编译阶段检查了错误,对代码进行了优化,在解释执行时就无需再查错,速

I学霸官方免费教程二十二:Java常用类之接收控制台输入 Scanner类

Scanner类(了解即可) 使用Scanner类接收键盘的输入1.创建Scanner对象的语法:Scanner scan = new Scanner(System.in);2.使用Scanner对象接收键盘输入:scan.next();//等待并接收键盘输入 实例: package common_class; import java.util.Scanner; /**  * 演示Scanner类  * 模拟用户登录  * @author 学霸联盟 - 赵灿  */ public class S

I学霸官方免费教程二(拓展):Java软件开发环境的安装与配置

一.安装开发环境 安装JDK 下载JDK网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装JDK:双击下载下来的.exe文件 单击下一步 安装目录可以修改,也可以不修改 确定之后点击安装(下一步):软件开始安装:JDK安装完毕后会弹出JRE安装界面:选择是否要更改安装目录 如果需要更改安装目录,最好和JDK的安装目录放到一起:JDK8.0和之前的版本安装稍有不同,这个j

I学霸官方免费教程二十三:Java常用类之日期类 Date类 SimpleDateFormat类 Calendar类

Date 类 创建对象时,默认获取系统当前时间 SimpleDateFormat类 用来格式化日期的:创建对象是可以传入格式:new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");主要方法format(Date) Calendar类 可以使用SimpleDateFormat类中的getCalendar()方法获取对象.常用方法:get(int); 常用属性:YEAR MONTH... 实例: package common_class; import j

I学霸官方免费教程二十四:Java常用类之随机数 Math类和Random类

咱先了解即可 Math类:数学类,包括abs()求绝对值,sin()正弦函数,cos()余弦函数等等Random类:获取各种数据类型的随机数 实例: import java.util.Random; /**  * 演示获取随机数  * @author 学霸联盟 - 赵灿  */ public class MathDemo { public static void main(String[] args) { //创建Random对象 Random random = new Random(); //

I学霸官方免费教程二十五:Java基础教程之枚举 enum

枚举 枚举简单的说就是将需要的常量值一个一个的列举出来,并封装成一个整体.语法格式:[public] enum 枚举名{ //值列表 }声明格式:枚举名 变量名:赋值格式:变量名 = 枚举名.值其中的列举的每个值要符合标识符命名规则,不可随意编写 实例: package enumdemo.simple; /**  * 创建枚举类型的Week 注意:这里创建的是枚举,即数据类型是enum,而不是类  * @author 学霸联盟 - 赵灿  */ public enum Week { // 列举出

I学霸官方免费教程二十六:Java基础教程之数组

数组 举例:假如现在有十个人排成一队[张三,李四,王五--],这个队的队名叫A,然后要求第一个人从0开始报数[张三报0,李四报1,王五报2--].现在要求第一个人出列,但现在还不知道张三的名字,怎么办?那么只能要求A队0号出列.请问此时谁会出列?很明显是张三出列.这对人就形成了类似数组的结构:其中队名A就对应数组名,各个人报的号就对应数组的下标,而每个人就对应数组中的元素,人的个数就对应数组的长度.在程序设计中,把具有相同类型的若干个变量按有序的形式组合在一起,仅使用一个变量名来存储这些元素,用

I学霸官方免费教程二十八:Java排序算法之选择排序和冒泡排序

选择排序 步骤一.选取一组数据中起始位置(下标)上的数据,和其后的各个位置(下标)上数据进行比较:如果起始位置(下标)上的数据大(升序)或小(降序),就将两个位置上的数据进行交换:这样完成一轮比较之后,起始位置上的数据就是最小或最大了步骤二.再次选取第二个位置上的数据,和其后各个位置上的数据进行比较.如此重复,就可将数据进行排序了. 实例: package algorithm.sort; /**  * 演示选择排序算法  * @author 学霸联盟 - 赵灿  */ public class 

I学霸官方免费教程二十九:Java查找算法之二分法查找

二分法查找算法 基本步骤:    第一步:获取数组中间的下标    第二步:中间下标处的值和目标值比较,如果目标值大,说明要找的值在数组的后边一半中    第三步:再次获取数组右边一半的中间下标    第四步:再次用获得的中间下标和目标值进行比较    后续步骤以此类推,这样每次查找都在"半份"数据中进行,所以又叫折半查找.这也是为什么使用二分法查找之前必须要对数组进行排序的原因.如果不排序,将无法判断目标值在哪"半份"中 实例: package algorithm