Java数据结构之数组

来源:互联网 发布:经济最优化 编辑:程序博客网 时间:2024/06/05 19:39

数组在编程语言中是必不可少的,在程序使用数组之前,必须要对数组进行声明。

(以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();    }}
原创粉丝点击