![](https://img-blog.csdnimg.cn/20201010115538543.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA数组
掌握一维数组的创建方法
掌握一维数组的初始化方法
熟练掌握一维数组的应用
掌握二维数组的创建
掌握二维数组的初始化
熟练掌握二维数组元素的访问方式
掌握数组的复制方法
掌握搜索数组元素的方法
掌握对数组的排序算法
不善表演
都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,
展开
-
1.22 实例:Java输出杨辉三角形(使用二维数组)
利用 Java 的二维数组来输出指定行数的杨辉三角形。杨辉三角形由数字进行排列,可以把它看作是一个数字表,其基本特性是两侧数值均为 1,其他位置的数值是其左上方数值与右上角数值之和。打印杨辉三角形时需要使用到 for 循环语句。打印杨辉三角形的实现思路是:每一行前面都是空格,而每行空格的个数需要根据总行数来确定,这个可以通过找规律归纳出来。关键是数值的实现,每一行的数值(除了第一列和最后一列)都是上一行两个数值之和,因此可以通过上一行来获取。具体代码如下所示:import java.util.Sca原创 2020-09-25 10:02:10 · 1892 阅读 · 0 评论 -
1.22 实例:商品信息查询
综合一维数组和二维数组的相关知识,以及数组排序的多种算法来实现商品信息查询的功能。假设在仓库系统中,每件商品都有 3 个库存信息,分别是入库量、出库量和当前库存量。定义一个一维数组来存储 5 件商品的名称,并定义一个二维数组来存储这 5 件商品的 3 个库存信息。用户可以根据商品名称查询该商品的所有库存,也可以查看某个类别库存下数量小于 100 的商品名单,并将该类别的所有库存量按从低到高的顺序排列。具体的代码如下:import java.util.Scanner;public class Test原创 2020-09-25 10:02:00 · 3438 阅读 · 0 评论 -
1.21 实例:统计商品信息
在一个货架上有 5 件商品,编写程序,在输入商品价格之后输出最高价格、总价格和平均价格。首先要创建一个包含 5 个空元素的价格数组,然后使用 for 循环使用户从控制台录入商品的价格,并将价格保存至数组中,再使用一个 for 循环来遍历该数组,求出最高价格和总价格。最后用总价格除以商品数量算出平均价格。public static void main(String[] args) { // 声明数组 int[] prices = new int[5]; int maxPrice =原创 2020-09-28 10:36:25 · 545 阅读 · 0 评论 -
1.23 实例:五子棋游戏
import java.util.Scanner;public class Gobang { // 定义棋盘的大小 public static int BOARD_SIZE = 15; // 定义一个二维数组来充当棋盘 public static String[][] board = new String[BOARD_SIZE][BOARD_SIZE]; String black = "●"; // 黑子 String white = "○"; // 白子原创 2020-09-23 10:26:09 · 249 阅读 · 0 评论 -
1.20 实例:数字转人民币读法
本节讲解在实际开发中常用的一个方法:将一个浮点数转换成人民币读法字符串,这个程序就需要使用数组。实现这个方法的思路是,首先把这个浮点数分成整数部分和小数部分。提取整数部分很容易,直接将这个浮点数强制类型转换成一个整数即可,这个整数就是浮点数的整数部分。再使用浮点数减去整数将可以得到这个浮点数的小数部分。然后分开处理整数部分和小数部分,其中小数部分的处理比较简单,直接截断到保留 2 位数字,转换成几角几分的字符串。整数部分的处理则稍微复杂一点,但只要认真分析不难发现,中国的数字习惯是 4 位一节的,一个原创 2020-09-22 10:12:46 · 658 阅读 · 0 评论 -
1.19 实例:Java求数组元素的最大和最小值
本节通过求数组的最大和最小值来提高初学者对数组的一些基本应用。public class Example{ public static void main(String[] args) { int score[] = { 67, 89, 87, 69, 90, 100, 75, 90 }; // 初始化数组 int max = 0; // 定义变量保存到最大值 int min = 0; // 定义变量保存到最小值 max = min =原创 2020-09-22 10:12:36 · 226 阅读 · 0 评论 -
1.18 Java直接插入排序法
直接插入排序的基本思想是:将 n 个有序数存放在数组 a 中,要插入的数为 x,首先确定 x 插在数组中的位置 p,然后将 p 之后的元素都向后移一个位置,空出 a§,将 x 放入 a§,这样可实现插入 x 后仍然有序。例 1本例子通过直接插入的方法对上述例子中的 number 数组进行排序。创建一个 Test27 类文件,在 main() 方法中开始编码,具体实现代码如下:public static void main(String[] args) { int[] number = { 13原创 2020-09-22 10:12:18 · 155 阅读 · 0 评论 -
1.17 选择排序法
假设当前存在一个 int 类型的数组 number,该数组中的元素依次是 13、15、 24、99、4 和 1。如果使用冒泡排序进行两两相邻比较,第一趟排序后的结果如下:13、15、24、4、1、99第二趟排序后的结果如下:13、15、4、1、24、99第三趟排序后的结果如下:13、4、1、15、24、99第四趟排序后的结果如下:4、1、13、15、24、99第五趟排序后的结果如下:1、4、13、15、24、99使用选择排序法也可以对上述数组中的元素进行排序,但是它与原创 2020-09-22 10:12:06 · 156 阅读 · 0 评论 -
1.15 Java冒泡排序法
冒泡排序(Bubble Sort)是常用的数组排序算法之一,它以简洁的思想与实现方法而备受青睐,也是广大学习者最先接触的一种排序算法。冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。冒泡排序的算法比较简单,排序的结果稳定,但时间效率不太高。Java 中的冒泡排序在双层循环中实现,其中外层循环控制排序轮数,总循环次数为要排序数组的长度减 1。而内层循环主要用于对原创 2020-09-22 10:11:33 · 354 阅读 · 0 评论 -
1.13 复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan
所谓复制数组,是指将一个数组中的元素在另一个数组中进行复制。本文主要介绍关于 Java 里面的数组复制(拷贝)的几种方式和用法。在 Java 中实现数组复制分别有以下 4 种方法:Arrays 类的 copyOf() 方法Arrays 类的 copyOfRange() 方法System 类的 arraycopy() 方法Object 类的 clone() 方法下面来详细介绍这 4 种方法的使用。使用 copyOf() 方法和 copyOfRange() 方法Arrays 类的 copyO原创 2020-09-22 10:11:10 · 2060 阅读 · 0 评论 -
1.16 快速排序法(Quicksort)
快速排序(Quicksort)是对冒泡排序的一种改进,是一种排序执行效率很高的排序算法。快速排序的基本思想是:通过一趟排序,将要排序的数据分隔成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此使整个数据变成有序序列。具体做法是:假设要对某个数组进行排序,首先需要任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它的前面,所有比它大的数都放到它的后面。这个过程称为一趟快速排序;递归调用此原创 2020-09-22 10:11:54 · 372 阅读 · 0 评论 -
1.14 sort()数组排序(升序和降序)
Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。升序使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步:导入 java.util.Arrays 包。使用 Arrays.sort(数组名) 语法对数组进行排序,排序规则是从小到大,即升序。假设在数组 scores 中存放了 5 名学生的成绩,现在要实现从低到高排列的功能。在这里使用 Arrays.sort() 方法来实现,具体代码如下:public static void原创 2020-09-22 10:11:20 · 3986 阅读 · 0 评论 -
1.11 Java数组填充(fill())
Arrays 类提供了一个 fill() 方法,可以在指定位置进行数值填充。fill() 方法虽然可以填充数组,但是它的功能有限制,只能使用同一个数值进行填充。语法如下:Arrays.fill(array,value);其中,array 表示数组,value 表示填充的值。例 1声明一个 int 类型的 number 数组,然后通过 for 语句进行遍历,在该语句中调用 Arrays 类的 fill() 方法来填充数组,并输出数组中元素的值。代码如下:public static void mai原创 2020-09-22 10:10:39 · 255 阅读 · 0 评论 -
1.10 比较两个数组是否相等(equals())
数组相等的条件不仅要求数组元素的个数必须相等,而且要求对应位置的元素也相等。Arrays 类提供了 equals() 方法比较整个数组。语法如下:Arrays.equals(arrayA, arrayB);其中,arrayA 是用于比较的第一个数组,arrayB 是用于比较的第二个数组。例 1下面代码演示 Arrays 类的 equals() 方法的使用。public static void main(String[] args) { double[] score1 = { 99, 10原创 2020-09-21 15:32:09 · 4550 阅读 · 0 评论 -
1.9 Java数组和字符串的相互转换
字符串转换为数组1)Java String 类中的 toCharArray() 方法将字符串转换为字符数组,具体代码如下所示。String str = "123abc";char[] arr = str.toCharArray(); // char数组for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); // 输出1 2 3 a b c}2)Java.lang 包中有 String.spl原创 2020-09-21 15:29:47 · 3333 阅读 · 0 评论 -
1.8 Arrays工具类
Arrays 类是一个工具类,其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过 Arrays.xxx(xxx) 的形式调用方法。索引查找1)int binarySearch(type[] a, type key)使用二分法查询 key 元素值在 a 数组中出现的索引,如果 a 数组不包含 key 元素值,则返回负数。调用该方法时要求数组中元素己经按升序排列,这样才能得到正确结果。2)int binary原创 2020-09-21 15:22:41 · 158 阅读 · 0 评论 -
1.7 Java到底有没有多维数组?
Java 中没有多维数组的概念,从数组底层的运行机制上来看 Java 没有多维数组,但是 Java 提供了支持多维数组的语法,可以实现多维数组的功能。Java 语言里的数组类型是引用类型,因此数组变量其实是一个引用,这个引用指向真实的数组内存。数组元素的类型也可以是引用,如果数组元素的引用再次指向真实的数组内存,这种情形看上去很像多维数组。定义数组类型的语法type[] arrName;是典型的一维数组的定义语法,其中 type 是数组元素的类型。如果希望数组元素也是一个引用,而且是指向 int 数组的原创 2020-09-21 15:14:05 · 755 阅读 · 0 评论 -
1.6 Java数组也是一种数据类型
Java 的数组要求所有的数组元素具有相同的数据类型。因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据。因为 Java 语言是面向对象的语言,而类与类之间可以支持继承关系(从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为),这样可能产生一个数组里可以存放多种数据类型的假象。例如有一个水果数组,要求每个数组元素都是水果,实际上数组元素既可以是苹果,也可以是香蕉(苹果、香蕉都继承了水果,都是一种特殊的水果),但这个数组的数组元素的类型原创 2020-09-21 15:06:15 · 652 阅读 · 1 评论 -
1.5 不规则数组
通过前面的学习我们知道 Java 实际上没有多维数组,只有一维数组。多维数组被解释为是数组的数组,所以因此会衍生出一种不规则数组。规则的 4×3 二维数组有 12 个元素,而不规则数组就不一定了。如下代码静态初始化了一个不规则数组。int intArray[][] = {{1,2}, {11}, {21,22,23}, {31,32,33}};高维数组(二维以及二维以上的数组称为高维数组)是 4 个元素,但是低维数组元素个数不同,如图 1 所示,其中第 1 个数组有两个元素,第 2 个数组有 1 个原创 2020-09-21 15:05:08 · 467 阅读 · 0 评论 -
1.4 多维数组
除了一维数组和二维数组外,Java 中还支持更多维的数组,如三维数组、四维数组和五维数组等,它们都属于多维数组。经过前面一维,二维的练习后不难发现,想要提高数组的维数,只要在声明数组时将索引与中括号再加一组即可,所以三维数组的声明为 int score[][][],而四维数组为 int score[][][][],以此类推。通常也将二维数组看作是多维数组。本文以三维数组为例来介绍多维数组。三维数组有三个层次,可以将三维数组理解为一个一维数组,其内容的每个元素都是二维数组。依此类推,可以获取任意维数的数组原创 2020-09-21 15:01:05 · 105 阅读 · 0 评论 -
1.3 Java二维数组详解
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来。二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。创建二维数组在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的语法如下:type arrayName[原创 2020-09-21 14:56:52 · 1182 阅读 · 0 评论 -
1.2 一维数组的定义、赋值和初始化
当数组中每个元素都只带有一个下标时,这种数组就是“一维数组”。一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是数组中最简单的一种数组。数组是引用数据类型,引用数据类型在使用之前一定要做两件事情:声明和初始化。所以本文将重点介绍一维数组的创建、初始化和使用。创建一维数组为了在程序中使用一个数组,必须声明一个引用该数组的变量,并指明整个变量可以引用的数组类型。声明一维数组的语法格式为:type[] arrayName; // 数据类型[] 数组名;或原创 2020-09-21 14:33:38 · 6364 阅读 · 0 评论 -
1.1 Java数组简介:数组是什么?
在某些情况下,虽然可以使用单个变量来存储信息,但是如果需要存储的信息较多(例如存储 50 名学生的成绩),这时再依次创建变量声明并赋值显得非常麻烦。随着处理的信息量越来越大,工作也就越来越烦琐,这时可以使用数组或集合来存储信息。通过使用数组,可以在很大程度上缩短和简化程序代码,从而提高应用程序的效率。数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组原创 2020-09-21 13:41:57 · 264 阅读 · 0 评论