Java数据结构之数组

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

(以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();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值