java 数组分析实现原理(七爪源码Java中的数组)
java 数组分析实现原理(七爪源码Java中的数组)在 Array 中,元素存储在连续的内存位置。示例:学生出勤记录,其中您被识别为您的卷号。 所以你的索引就是你的卷号。 第一个学生一般都有卷号。 为 1 但在 Array 中第一个元素的索引为 0(记住这一点)。一些现实生活中的例子是:-数组是基于索引的,第一个元素存储在第 0 个索引处,第二个元素存储在第一个索引处,依此类推。如果你不明白索引的含义,那么我们通过一个例子来理解它。
在今天的节目中,我们将了解如何在 Java 中实现数组。
什么是数组?
数组是相似数据类型的集合。
就像 int 数组只能存储整数元素,而字符串数组只能存储字符串元素。
一些现实生活中的例子是:-
- 学生记录
- 图书馆里的书
- 盒装彩色笔
- 排长队的男人
数组是基于索引的,第一个元素存储在第 0 个索引处,第二个元素存储在第一个索引处,依此类推。
如果你不明白索引的含义,那么我们通过一个例子来理解它。
示例:学生出勤记录,其中您被识别为您的卷号。 所以你的索引就是你的卷号。 第一个学生一般都有卷号。 为 1 但在 Array 中第一个元素的索引为 0(记住这一点)。
在 Array 中,元素存储在连续的内存位置。
连续内存是什么意思?
这意味着如果整数数组的第一个元素位于地址 100,则下一个元素将存储在 104,以此类推。 见下图。
在Java中,数组是一个对象,它也可以存储原始数据类型和对象。现在我希望你知道对象,因为 Java 是面向对象的编程语言,但是,如果你不明白对象是什么,让我通过一个例子来解释:
对象的标准定义是“它是类的一个实例”。现在假设您是学生,您的朋友也是学生,但您的姓名和卷号等属性是独一无二的。所以学生是班级,你是对象。
从类创建对象/实例的过程称为实例化。
如果您仍然不了解类和对象,您可以尝试其他资源并花点时间,即使需要 1 到 2 周的时间来熟悉这些概念。
让我们再次回到正题,现在让我们看看如何在 java 中声明一个数组。
如何在 Java 中声明数组?
您在这里有三个选择,但建议您选择第一个。
- 整数 [] arr;
- int []arr;
- int arr[];
所以现在如果你知道 c/c ,那么你可能在想为什么我们在这里没有提到大小。
这是因为 java 中的 Array 继承了 Object 类,所以我们必须使用 new 运算符分配内存,这称为实例化(创建类的对象)。
数组如何是对象?
这是因为当您声明一个数组时,会动态生成一个类,因此我们必须使用 new 运算符创建内存。
如何实例化数组?
- int[] arr = 新的 int[大小];
- int []arr = 新的 int[大小];
- int arr[] = 新的 int[大小];
现在您已经了解了如何在 java 中创建数组。
Array 的大小可以在 Java 中增长吗?
不,Array 的大小在 Java 中是固定的,但您可以使用 Java 中 Collection Framework 中的 List。
如果您是 Java 新手,那么首先尝试自己实现所有 Collection 的类,例如自己实现 List、Stack、Queue、Set、Map。
如何访问数组元素?
这与您在 C/C 或任何其他编程语言中所做的相同。由于 Array 是从 0 开始索引的。这意味着第一个元素位于第 0 个索引处。
arr[0] 是第一个元素。
arr[1] 是第二个元素。
你可以参考上一张图。
假设你有一个大小为 2 的数组,那么 arr[0] 是第一个元素, arr[1] 是第二个/最后一个元素。
如果你做 arr[2] 怎么办?
因为最后一个元素在 arr[1] 处,大小为 2。
你会得到一个异常( ArrayIndexOutOfBoundsException )。
现在让我讨论一下异常,异常是一种告诉用户代码出了什么问题的方法。
现在,如果您已经用 c 编写了代码,则可以将其关联起来,无论何时您尝试编译代码并且如果它给出错误它只会告诉您错误发生在哪一行,该错误可能是分号错误或访问索引之外的数组.
但是Java不是这样,在Java中有预定义的异常。
每当发生该错误时,就会引发相应的异常,因此用户可以知道他们的代码出了什么问题。
您也可以抛出自己的自定义异常。
如何设置/更新数组元素?
它也与任何其他编程语言相同。
arr[0] = 2;现在数组中的第一个元素(在 0 索引处)是 2。
如何获取数组的大小/长度?
arr.length 将返回数组的长度。
int[] arr = new int[5];
所以 arr.length 将返回 5。
如何打印/遍历数组元素?
如您所知, arr[0] 将返回第一个元素,然后 arr[size-1] 将返回最后一个元素。
因为您知道如何计算数组的大小。
您可以使用运行 0 到 n-1 的 for 循环(其中 n 是数组长度)并打印数组元素。
这是一个反转数组的示例代码,以便您熟悉本博客中提到的所有操作。
import java.util.*;
public class ArrayUtil {
public static void main(String[] args) {
// intialize array
int n = 5;
int[] arr = new int[n];
for(int i=0;i<n;i )
arr[i] = i;
// print array
System.out.print("\nBefore Reversing:- ");
for(int i=0;i<n;i )
System.out.print(arr[i] " ");
// reverse array
for(int i=0;i<n/2;i ) {
int temp = arr[i];
arr[i] = arr[n-i-1];
arr[n-i-1] = temp;
}
// print array after reversing
System.out.print("\nAfter Reversing:- ");
for(int i=0;i<n;i )
System.out.print(arr[i] " ");
}
}
/*
Output:
Before Reversing:- 0 1 2 3 4
After Reversing:- 4 3 2 1 0
*/
关注七爪网,获取更多APP/小程序/网站源码资源!