当前位置:   article > 正文

Java数组详解_from myarray import myarray x=myarray(1,2,3,4,5,6)

from myarray import myarray x=myarray(1,2,3,4,5,6) y=myarray(6,5,4,3,2,1) 输

目录

1、数组的定义:

2、数组声明创建:

3、数组的三种初始化

3.1、静态初始化

3.2、动态初始化

3.3、数组的默认初始化

4、数组的四个基本特点:

5、数组使用

5.1、遍历数组

5.2、数组用作返回值

5.3、数组作为方法入参

6、多维数组

6.1、二维数组的声明

6.2、二维数组的静态初始化10

6.3、二维数组的动态初始化

7、Arrays类

8、稀疏数组


1、数组的定义:

数组是相同类型数据的有序集合、数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成,其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们。

2、数组声明创建:

在Java中,数组是一种特殊的对象,用于存储相同类型的元素集合。数组的定义通常包括以下步骤:

1、声明:声明数组时,需要指定数组的元素类型和数组名称。例如,如果你要创建一个存储整数的数组,可以这样声明:

int[] myArray;

 2、创建:要创建数组对象,需要使用new关键字分配内存空间,并使用大括号{}初始化元素。例如,创建一个包含5个整数的数组:

int[] myArray = new int[5];

 3、初始化:可以在创建时直接初始化数组元素,例如:

int[] myArray = {1, 2, 3, 4, 5};

或者,可以先声明一个数组对象,然后在后续代码中逐个赋值:

  1. int[] myArray;
  2. myArray[0] = 1;
  3. myArray[1] = 2;
  4. // 以此类推

 4、多维数组:Java中的数组可以是多维的。二维数组可以看作是一个表格,其中每个元素由两个索引(行和列)唯一确定。声明和创建二维数组的示例如下:

  1. int[][] twoDimArray; // 声明二维数组
  2. twoDimArray = new int[3][4]; // 创建二维数组,包含3行4列

3、数组的三种初始化

3.1、静态初始化

在声明数组时直接初始化元素。例如:

int[] arr = {1, 2, 3, 4, 5};

这种方式会根据数组元素的数据类型自动推断数组的大小。如果数组元素是引用类型,那么每个引用都将被初始化为null。 

3.2、动态初始化

先声明一个数组,然后在后续代码中动态分配空间并赋值。例如:

  1. int[] arr = new int[5]; //声明一个长度为5的int数组
  2. arr[0] = 1; //为数组的第一个元素赋值
  3. arr[1] = 2; //为数组的第二个元素赋值
  4. //以此类推

3.3、数组的默认初始化

如果只是声明数组而没有进行显式初始化,那么对于引用类型的数组元素,其默认值是null;对于数值类型的数组元素,其默认值是该类型的默认值(例如,int类型的默认值为0,boolean类型的默认值为false)。例如:

int[] arr; //未初始化的数组

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

4、数组的四个基本特点:

  1. 有序性:数组是一个有序的数据结构,它按照元素的下标(索引)进行存储。每个元素都有一个特定的位置,可以通过下标进行访问。
  2. 同质性:数组中的所有元素都必须具有相同的数据类型。这意味着数组中的每个元素都必须是相同类型的数据,例如整数、字符串或其他数据类型。
  3. 固定大小:一旦数组被创建,其大小就是固定的,不能改变。这意味着数组在初始化时必须指定其大小,并且该大小在整个数组生命周期中保持不变。
  4. 随机访问:由于数组是顺序存储的,因此可以快速访问数组中的任何元素。可以通过元素的下标直接访问数组中的任何位置,而无需进行线性搜索。

5、数组使用

5.1、遍历数组

在编程中,遍历数组是指访问数组中的每个元素并对其进行操作。这可以通过使用循环来完成,例如for循环或while循环。以下是一个使用for循环遍历数组的示例代码(Java语言):

  1. int[] myArray = {1, 2, 3, 4, 5};
  2. for (int i = 0; i < myArray.length; i++) {
  3. System.out.println(myArray[i]);
  4. }

在上述代码中,我们使用for循环来遍历整型数组myArray,并使用System.out.println()方法打印每个元素的值。

5.2、数组用作返回值

在编程中,可以将数组作为方法的返回值返回。这意味着方法将返回一个数组类型的值,该值将包含方法执行后的结果。以下是一个示例代码(Java语言):

  1. public int[] getArray() {
  2. int[] myArray = {1, 2, 3, 4, 5};
  3. return myArray;
  4. }


在上述代码中,我们定义了一个名为getArray()的方法,该方法返回一个整型数组myArray。调用该方法时,将返回该数组。

5.3、数组作为方法入参

在编程中,可以将数组作为方法的参数传递。这意味着方法将使用该数组作为输入,并可能对该数组进行操作。以下是一个示例代码(Java语言):

  1. public void printArray(int[] myArray) {
  2. for (int i = 0; i < myArray.length; i++) {
  3. System.out.println(myArray[i]);
  4. }
  5. }

在上述代码中,我们定义了一个名为printArray()的方法,该方法接受一个整型数组myArray作为参数。该方法使用for循环遍历该数组并打印每个元素的值。

6、多维数组

多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。

6.1、二维数组的声明

  1. public class Test {
  2. public static void main(String[] args) {
  3. // Java中多维数组的声明和初始化应按从低维到高维的顺序进行
  4. int[][] a = new int[3][];
  5. a[0] = new int[2];
  6. a[1] = new int[4];
  7. a[2] = new int[3];
  8. //int a1[][] = new int[][4];//非法
  9. }
  10. }

6.2、二维数组的静态初始化10

  1. public class Test {
  2. public static void main(String[] args) {
  3. int[][] a = { {1, 2, 3}, {3, 4}, {3, 5, 6, 7} };
  4. System.out.println(a[2][3]);
  5. }
  6. }

6.3、二维数组的动态初始化

  1. import java.util.Arrays;
  2. public class Test {
  3. public static void main(String[] args) {
  4. int[][] a = new int[3][];
  5. //a[0] = {1, 2, 5};//错误,没有声明类型就初始化
  6. a[0] = new int[]{ 1, 2 };
  7. a[1] = new int[]{ 2, 2 };
  8. a[2] = new int[]{ 2, 2, 3, 4 };
  9. System.out.println(a[2][3]);
  10. System.out.println(Arrays.toString(a[0]));
  11. System.out.println(Arrays.toString(a[1]));
  12. System.out.println(Arrays.toString(a[2]));
  13. }
  14. }

7、Arrays类

Java的Arrays类是java.util包中的一个工具类,它提供了一些静态方法来操作数组。这个类是不可变的,所以所有的方法都返回了新的数组,而不是修改传入的数组。以下是Arrays类的一些主要功能:

1.排序:

  • sort(T[] a): 对类型为Type的数组进行排序。
  • sort(T[] a, Comparator<? super T> c): 使用特定的比较器对类型为Type的数组进行排序。

2.查找:

  • binarySearch(T[] a, T key): 使用二分搜索算法在排序后的列表中查找给定的元素。
  • binarySearch(T[] a, T key, Comparator<? super T> c): 使用二分搜索算法在排序后的列表中查找给定的元素,并使用特定的比较器。

3.操作:

  • fill(T[] a, T value): 将指定的值填充到数组的所有元素。
  • toString(T[] a): 返回数组元素的字符串表示形式。

4.操作数组:

  • copyOf(T[] original, int newLength): 创建一个新的数组,它是原始数组的拷贝,但是在可能的情况下缩短长度或增加空间(如果原始数组元素类型占用多个字节)。
  • copyOfRange(T[] original, int from, int to): 创建一个新的数组,它是原始数组的一部分的拷贝。

5.操作列表:

  • asList(T... array): 将一个可变参数的数组转换为一个List。

6.操作映射:

  • asMap(T[] keys, V[] values): 将两个数组转换为Map。

以上就是Java Arrays类的主要功能。这个类提供了一些有用的方法来操作数组,使得在Java中对数组的操作变得简单方便。

8、稀疏数组

什么是稀疏数组?

(1)、当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。

(2)、稀疏数组的处理方式:记录数组一共有几行几列,有多少个不同值,把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模。

如下图:左边为原始数组,右边为稀疏数组

输出数组中有效值的个数:

创建一个稀疏数组,并把上面的二维数组转换成稀疏数组:

最后再还原稀疏数组为二维数组:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/567534
推荐阅读
相关标签
  

闽ICP备14008679号