java 字符串数组 包含 java字符串在数组里_复制数组


一.阵列概述

数组是一个容器对象,它包含固定数量的单个类型的值。

数组的长度是在创建数组时确定的。创建后,其长度是固定的。

众所周知,Array数组是一种数据结构,我们存储相似的元素,数组从索引0开始。

数组中的每个项都称为Element元素,每个元素都由其数值index索引访问。

由于数组是Java中的objects对象,我们可以使用成员长度来确定它们的长度。

Java数组变量也可以像其他变量一样在数据类型后面用[]声明。

数组中的变量是有序的,每个变量都有一个从0开始的索引。

Java数组也可以用作static静态字段、local局部变量或方法参数。

数组的大小必须由int值指定,不能长或短。


java 字符串数组 包含 java字符串在数组里_数组_02


二.Array数组类型

有2种类型的数组

1.一维阵列。

2.多维数组。

一维阵列举例:

只存储原语或对象的数组称为一维数组。例如,让我们创建一个整数数组,在数组中放入一些值,并将每个值打印到标准输出。


java 字符串数组 包含 java字符串在数组里_初始化_03


输出 output:


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_04


多维数组。

多维数组存储其他数组。它是一个数组。在多维数组中,数组中的每一个元素都保存着其它数组的引用。多维数组是通过在每个维度上附加一组方括号([])创建的。


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_05


输出output


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_06


三.声明数组示例

让我们来声明一个数组像这样:


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_07


数组声明有两个组件:数组的类型和数组的名称。

数组的类型写为type[],其中type是包含元素的数据类型;括号是表示此变量包含数组的特殊符号。数组的大小不是其类型的一部分(这就是方括号为空的原因)。

上面的程序an array之类的变量是variable,声明实际上并不创建数组;它只是告诉编译器这个变量将保存指定类型的数组。

声明数组的例子很少。


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_08


也可以在数组名称后放置括号:


java 字符串数组 包含 java字符串在数组里_复制数组_09


但是,约定不鼓励这种形式;括号标识数组类型,并应与类型名称一起出现。

四.创造一个Array数组例子:

创建数组的一种方法是使用新的运算符。


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_10


上面的代码行为10个整数元素分配一个具有足够内存的数组,并将该数组分配给anArray变量。

创建数组的其他几个示例:


java 字符串数组 包含 java字符串在数组里_初始化_11


五.初始化数组示例

初始化整数数组示例

让我们用几个整型元素创建和初始化整型数组,如:


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_12


初始化字符串数组示例

让我们用几个字符串String元素创建和初始化字符串String数组,如:


java 字符串数组 包含 java字符串在数组里_初始化_13


初始化雇员数组示例

让我们用几个Employee对象创建和初始化Employee数组:


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_14


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_15


六.访问数组示例

访问整数数组示例

让我们创建整数数组,用少量元素初始化,用索引访问整数数组。


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_16


输出:


java 字符串数组 包含 java字符串在数组里_初始化_17


访问字符串数组示例

让我们创建字符串数组,用少量元素初始化,用索引访问字符串数组。


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_18


输出:


java 字符串数组 包含 java字符串在数组里_复制数组_19


访问员工数组示例

让我们创建雇员数组,用很少的元素初始化,用索引访问雇员数组。


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_20


java 字符串数组 包含 java字符串在数组里_数组_21


输出:


java 字符串数组 包含 java字符串在数组里_初始化_22


七.创建和初始化数组的快捷语法

或者,我们可以使用快捷语法创建和初始化数组:

示例:创建和初始化整数数组的快捷语法:


java 字符串数组 包含 java字符串在数组里_初始化_23


输出output:


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_24


创建和初始化字符串数组的快捷语法示例:


java 字符串数组 包含 java字符串在数组里_数组_25


输出output:


java 字符串数组 包含 java字符串在数组里_初始化_26


创建和初始化雇员数组的快捷语法示例:


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_27


八.Java数组复制示例(四种方式)

让我们看看用Java复制数组的四种不同方法:

使用内置的System.arraycopy()方法复制数组

使用Arrays.copyOf()方法复制数组

使用Object.clone()方法复制数组

使用Array.copyOfRange()方法复制数组

-----------------------------------------------------------------------------------------------使用内置的System.arraycopy()方法复制数组


java 字符串数组 包含 java字符串在数组里_数组_28


使用Arrays.copyOf()方法复制数组

如果要复制数组的前几个元素或数组的完整副本,可以使用此方法。显然它不像System.arraycopy()那样通用,但它也不容易混淆和使用。此方法在内部使用System arraycopy()方法。

import java.util.Arrays;
/**
* This class shows different methods for copy array in java
* @author http://javaguides.net
*
*/
public class JavaArrayCopyExample {
public static void main(String[] args) {
int[] source = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
System.out.println("Source array = " + Arrays.toString(source));
int[] dest = Arrays.copyOf(source, source.length);
System.out.println(
"Copy First five elements of array. Result array = " + Arrays.toString(dest));
}
}


java 字符串数组 包含 java字符串在数组里_初始化_29


使用Object.clone()方法复制数组

Object类提供clone()方法,由于java中的数组也是一个对象,所以可以使用此方法来实现完整的数组复制。如果需要数组的部分副本,则此方法不适合您。

/**
* This class shows different methods for copy array in java
* @author http://javaguides.net
*
*/
public class JavaArrayCopyExample {
public static void main(String[] args) {
int[] source = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
System.out.println("Source array = " + Arrays.toString(source));
int[] dest = source.clone();
System.out.println(
"Copy First five elements of array. Result array = " + Arrays.toString(dest));
}
}


java 字符串数组 包含 java字符串在数组里_复制数组_30


使用Array.copyOfRange()方法复制数组

如果要复制数组中的一些元素,而起始索引不是0,则可以使用此方法复制部分数组。同样,这个方法也在使用系统arraycopy方法本身。

/**
 * This class shows different methods for copy array in java
 * @author http://javaguides.net
 *
 */
public class JavaArrayCopyExample {
 public static void main(String[] args) {
 int[] source = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 System.out.println("Source array = " + Arrays.toString(source));
 int[] dest = Arrays.copyOfRange(source, source.length - 3, source.length);
 System.out.println(
 "Copy First five elements of array. Result array = " + Arrays.toString(dest));
 }
}


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_31


九.Java打印数组内容示例


java 字符串数组 包含 java字符串在数组里_java 字符串数组 包含_32


java 字符串数组 包含 java字符串在数组里_初始化_33


输出output:


java 字符串数组 包含 java字符串在数组里_C++接收字符串数组_34


建议使用Arrays.toString()来打印数组的内容。

十.Java数组的优势

代码优化:它使代码优化,我们可以很容易地检索或排序数据。

随机存取:我们可以得到任何位于索引位置的数据。

十一.数组的限制

大小限制:我们可以存储数组中元素的唯一固定大小。它在运行时不会变大。为了解决这个问题,在java中使用了集合框架。