本文共 2957 字,大约阅读时间需要 9 分钟。
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数(数据)组(一组)就是一组数据
数据类型 数组名[] = new 数据类型[大小] 或者 数据类型[] 数组名= new 数据类型[大小] 例如: int[] a = new int[5] 与 int a[] = new int[5]是等价的
建议使用== 数据类型[] 数组名= new 数据类型[大小]==这种方式
数组名[下标]
int[] a = {1,2,3,4,5,6,7,8,9}
(1)数组是多个相同类型数据的组合,实现对这些数据的统一管理(2)数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
(3)数组创建后,如果没有赋值,有默认值int0,short0,byte0,long0,float0.0,double0.0,char\u0000,booleanfalse,Stringnull (4)使用数组的步骤 1.声明数组并开辟空间 2给数组各个元素赋值 3使用数组 (5)数组的下标是从0开始的。 (6)数组下标必须在指定范围内使用,否则报:下标越界异常,比如:int[]arr=newint[5];则有效下标为0-4 (7)数组属于引用类型,数组型数据是对象(object)(1)基本数据类型赋值,这个值就是具体的数据,而且相互不影响。即是值拷贝。intn1=2;intn2=n1;
(2)数组在默认情况下是引用传递,赋的值是地址。 关于基本数据类型赋值方式是值传递,而引用类型赋值是地址传递非常重要在开发中要特别注意 但有时候我们确实有这样的需要,就是要实现引用类型的值拷贝,修改新的变量后不会影响原来的变量的值。可以这样开辟新的空间,再通过给元素赋予相同值的方法完成。/** * @author Francis * @create 2021-06-19 18:56 */public class ArrayCopy { public static void main(String[] args) { //将int[]arr1={10,20,30};拷贝到arr2数组, // 要求数据空间是独立的. int[] arr1 = { 10, 20, 30}; //创建一个新的数组arr2,开辟新的数据空间 // 大小arr1.length; int[] arr2 = new int[arr1.length]; //遍历arr1,把每个元素拷贝到arr2对应的元素位置 for (int i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; } //修改arr2,不会对arr1有影响 arr2[0] = 100; //输出arr1 System.out.println("====arr1的元素===="); for (int i = 0; i < arr1.length; i++) { System.out.println(arr1[i]);//10,20,30 } System.out.println("====arr2的元素===="); for(int i=0;i
思路:定义一个比原来的数组array长度大一个的数组newArray,循环将原来数组array的每个元素的值赋给newArray,并将newArray的最后一个元素给赋予需要的值,最后将newArray赋给array。
思路是数组扩容的逆向
排序是将多个数据,依指定的顺序进行排列的过程。
排序的分类: (1)内部排序: 指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法); (2)外部排序法 数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)冒泡排序(BubbleSorting)的基本思想是:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。
/** * @author Francis * @create 2021-06-20 11:11 */public class BubbleShort { public static void main(String[] args) { int[] arr = { 12, 56, 48, 369, -1, -56, 45, 96}; int temp = 0; for (int i = 0; i < arr.length - 1; i++) { //外层循环是4次 for (int j = 0; j < arr.length - 1 - i; j++) { //4次比较-3次-2次-1次//如果前面的数>后面的数,就交换 if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } System.out.println("\n==第" + (i + 1) + "轮=="); } for (int j = 0; j < arr.length; j++) { System.out.print(arr[j] + "\t"); } }}
在java中,我们常用的查找有两种:
(1)顺序查找 (2)二分查找(要求查找的数组是有序的)二维数组的注意事项和使用细节
(1)一维数组的声明方式有 :int[] x或者intx[] (2)二维数组的声明方式有: ==int[][] y或者int[] y[] 或者int y[][] (3)二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同。比如:map[][]是一个二维数组 (4)二维数组也有动态初始化和静态初始化两种方式转载地址:http://hixzi.baihongyu.com/