赞
踩
数组用来存储一个元素个数固定且元素类型相同的有序集。
- //一、元素类型[] 数组引用变量;(推荐使用)
- int[] myArray;
- //二、元素类型 数组引用变量[];
- int myArray[];
myArray = new int[8];//定义数组长度为8
int[] myArray = new int[8];
- //new 数据类型[] {值0,值1,值2,……,值n}
- printArray(new int[]{2,4,5,2,8});
- public static void printArray(int[] array){
- for (int i : myArray) {
- System.out.print(i+"");
- }
- //声明数组、创建数组、初始化数组合并到一句:元素类型[] 数组引用变量 = {key1,key2,...,keyn}
- int[] myArray = {1,2,3,4,,5,6};
- int[] myArray = {1,2,4,5,7,8,8};
- for (int i = 0; i < myArray.length; i++) {
- System.out.println(myArray[i]);
- }
- int[] myArray = new int[8];
- for (int i = 0; i < myArray.length; i++) {//初始化为0到100(不包括)之间的随机整数
- myArray[i] = (int)(Math.random()*100);
- System.out.println(myArray[i]);
- }
- int[] sourceArray = {1,2,3,4,5,6};
- for (int i = 0; i < sourceArray.length; i++) {
- System.out.print(sourceArray[i]+"");
- }
- //针对每个元素myArray[i],随意产生一个下标index,然后将myArray[i]和myArray[index]交换
- for (int i = 0; i < myArray.length; i++) {
- int index = (int)(Math.random()*myArray.length);
- int tmp = myArray[i];
- myArray[i] = myArray[index];
- myArray[index] = tmp;
-
- }
array2 = array1;
在Java中,可以使用赋值语句复制基本数据类型的变量,但不能复制数组。将一个数组变量赋值给另一个数组变量,实际上是将一个数组的引用赋值给另一个变量,使两个变量都指向相同的内存地址。
复制数组有三种方法:
- 1)使用循环语句逐个的复制数组的元素:
int[] sourceArray = {1,2,3,4,5,6}; int[] targetArray = new int[sourceArray.length]; for (int i = 0; i < sourceArray.length; i++) { targetArray[i] = sourceArray[i]; }
- 2)使用System类中的静态方法(java.lang.System包)arraycopy,arraycopy的语法如下(arraycopy方法没有给目标数组分配内存空间,复制前必须创建目标数组以及分配给它的内存空间):
/* 参数src_pos和tar_pos分别表示在源数组sourceArray和目标数组targetArray中的起始位置,从sourceArray复制到targetArray中的元素个数由参数length指定。 **/ System.arraycopy(sourceArray,src_pos,targetArray,tar_pos,length);
- 3)使用clone方法复制数组
对于基本数据类型参数,传递的是实参的值;对于数组类型参数,传递的是数组的引用(类似于C语言中的指针),所以,在方法中改变数组的内容,会看到方法外的数组也发生变化。
- int[] myArray = {1,2,4,5,7,8,8};
- int[] myArray2 = reverse(myArray);
- //反序输出数组
- private static int[] reverse(int[] array) {
- int[] result = new int[array.length];
-
- for (int i = 0,j = result.length-1; i < result.length; i++,j--) {
- result[j] = array[i];
- }
- return result;
- }
- public static void main(String[] args) {
- char[] array = getRandomCaseLetter(100);
- System.out.println(array);
- int[] counts = countLetters(array);
- for (int i : counts) {
- System.out.print(i+" ");
- }
- }
-
-
- /*
- * 统计每个字符出现的次数
- */
- private static int[] countLetters(char[] array) {
- int counts[] = new int[26];
- for (int i = 0; i < array.length; i++) {
- counts[array[i]-'a'] ++;
- }
- return counts;
- }
-
- /*
- * 产生长度为length的小写字母组成的随机字符数组
- * */
- private static char[] getRandomCaseLetter(int length) {
- char[] array = new char[length];
- for (int i = 0; i < array.length; i++) {
- array[i] = (char)('a'+ Math.random()*('z'-'a'+1));
- }
- return array;
- }
将字符数组转换成字符串:
- char[] chs = {'2','3','5'};
- String seq = String.valueOf(chs);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。