数组在编程语言中是必不可少的,在程序使用数组之前,必须要对数组进行声明。
(以String类型数组为例)
声明的格式有两种:
String[] programing_languages; //推荐使用此方法
String programing_languages[]; //与前一个效果相同,但不推荐使用,此表示风格来自C/C++语言
声明数组后我们还需要通过new操作符来创建数组:
programing_languages = new String[arraySize];
//String[arraySize]创建了一个数组,并把数组的引用赋值给了变量programing_languages
当然,数组的声明和创建可以写成一条语句:
String[] programing_languages = new String[arraySize];
实例:
package cn.xuzihui;
public class ArraysTest {
public static void main(String[] args) {
String[] programing_languages = new String[5];
programing_languages[0] = "C Language";
programing_languages[1] = "Python";
programing_languages[2] = "Java";
programing_languages[3] = "JavaScript";
programing_languages[4] = "Html5";
System.out.println("There are five Complate Languages:");
for(int i = 0 ; i < programing_languages.length ; i++) {
System.out.println(programing_languages[i]);
}
}
}
输出结果:
There are five Complate Languages:
C Language
Python
Java
JavaScript
Html5
还可以通过foreach循环输出:
package cn.xuzihui;
public class ArraysTest {
public static void main(String[] args) {
String[] programing_languages = new String[5];
programing_languages[0] = "C Language";
programing_languages[1] = "Python";
programing_languages[2] = "Java";
programing_languages[3] = "JavaScript";
programing_languages[4] = "Html5";
System.out.println("计算机语言有(通过foreach输出):");
for(String programing_language:programing_languages) {
System.out.println(programing_language);
}
}
}
输出结果:
计算机语言有(通过foreach输出):
C Language
Python
Java
JavaScript
Html5
数组可以作为参数传递给方法:
package cn.xuzihui;
public class ArraysTest {
public void show(String[] programing_languages) {
for(String programing_language:programing_languages) {
System.out.println(programing_language);
}
}
public static void main(String[] args) {
ArraysTest at = new ArraysTest();
at.show(new String[] {"Python", "Java", "C Language"});
}
}
输出结果:
Python
Java
C Language
数组也可以作为函数的返回值:
package cn.xuzihui;
public class ArraysTest {
public String[] show() {
String[] programing_languages = new String[5];
programing_languages[0] = "C Language";
programing_languages[1] = "Python";
programing_languages[2] = "Java";
programing_languages[3] = "JavaScript";
programing_languages[4] = "Html5";
return programing_languages;
}
public static void main(String[] args) {
ArraysTest at = new ArraysTest();
String[] languages = at.show();
for(String language:languages) {
System.out.println(language);
}
}
}
输出结果:
C Language
Python
Java
JavaScript
Html5
以上是一维数组,二维数组的声明和创建与一维数组类似:
String[][] languages = new String[3][3];
//创建一个3行3列的二维数组
Arrays 类 (摘自菜鸟教程 )
方法 |
---|
public static int binarySearch(Object[] a, Object key) 用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1) |
public static boolean equals(long[] a, long[] a2) 如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
public static void fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
public static void sort(Object[] a) 对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
下面是Arrays类里面数组排序和查找元素位置的小例子:
package cn.xuzihui;
import java.util.Arrays;
public class ArraysTest {
public static void main(String[] args) throws Exception{
int[] arrays = {2,5,4,9,8,3,-6,-1,0,7,1};
show("源数组为:", arrays);
Arrays.sort(arrays); //排序数组
show("排序后的数组为:", arrays);
int w = Arrays.binarySearch(arrays, 1); //查询元素位置
System.out.println("元素 1 在排序后数组的第"+ w +"位置");
}
//show()方法用作输出整个函数
public static void show(String message, int arrays[]) {
System.out.print(message);
for(int array:arrays) {
System.out.print(array+" ");
}
System.out.println();
}
}