Java数组
数组的声明、创建、初始化
声明数组变量
daouble[] myList; /*首选这个dataType[] arrayRefvar,这个写法风格来自C/C++语言,在Java这么写主要是让C/C++程序员快速理解Java*/ double myList[];//dataType[] arrayRefvar[]的写法与上面的效果是一样的
创建数组(使用new操作符)
arrayRefvar = new dataType[arraySize]; /*1.使用dataType[arraySize]创建一个数组;2.将创建的taType[arraySize]数组赋值给arrayRefvar ;*/
声明和创建数组
dataType[] arrayRefVar = new dataType[arraySize];
dataType[] arrayRefVar ={value0,value1,...,valuen};/*数组通过索引访问,索引值从0到arrayRefVar.length-1*/
实例:
public class Test{ public static void main(String[] args){ int size = 5;//数组大小 double[] myList = new double[size];//定义数组 myList[0] = 5.6; myList[1] = 4.5; myList[2] = 5.5; myList[3] = 4.4; myList[4] = 1.1; // 计算数组的和 double total = 0; for(int i=0;i<size;i++){ total +=myList[i]; } System.out.println("数组和为:"+total); } }
运行结果
数组和为:21.1
处理数组
数组的元素类型和大小是确定的,常用基本循环或者For-Each循环
实例
public class Test{ public static void main(String[] args){ double[] myList = {1.9,2.9,3.4,3.5}; //打印数组所有元素 for(int i=0;i<myList.length;i++){ System.out.println(myList[i]); } //计算数组所有值的和 double dou=0; for(int i=0;i<myList.length;i++){ dou +=myList[i]; } System.out.println("和:"+dou); //找出数组里的最大值 double max=myList[0]; for(int i=1;i<myList.length;i++){ if(myList[i]>max){ max = myList[i]; } System.out.println("最大值:"+max); } }
运行结果
1.9 2.9 3.4 3.5 和:11.7 最大值:3.5
使用For-Each循环(遍历数组)
for(type element:array){ System.out.println(element); }//语法格式
实例
public class Test{ public static void main(String[] args){ double[] myList = {1.9,2.9,3.4,3.5}; //打印所有数组 for(ouuble element:myList){ System.out.println(element); } } }
运行结果
1.9 2.9 3.4 3.5
————————————————————————
数组作为函数的参数
public static void printArray(int[] array){ for(int i=0;i<array.length;i++){ System.out.println(array[i]); } } //调用printArray方法打印出数组 printArray(new int[]{1,2,3,4,5});
_________________
数组作为函数的返回值
public static int[] reverse(int[] list){ int[] result = new int[list.length]; for(int i=0,j=result.length-1;i<result.length;i++,j--){ result[j]=list[i]; } return result; }
________________________
多维数组(以二维数组为例)
String str[][] = new String[3][2]; /*格式type[][] typeName = new type[typeLength1][typeLength2]; type可以是基本数据类型和符合数据类型,typeLength1、typeLength2必须是正整数,
typeLength1是行数,typeLength2是列数*/
引用
arrayName[index1][index2];
______________________
Array类
java.util.Arrays类提供的所有方法是静态的,可以
1.给数组赋值:通过fill方法
2.对数组排序:通过sort方法,升序
3.比较数组:通过equals方法比较数组元素值是否相等
4.查找数组元素:通过binarySearch 方法能对排序好的数组进行二分法查找
方法和说明:
1.public static int binarySearch(Objecct[] a,Object key)
用二分法查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好,如果查找值包含在数组中,则返回索引键的索引,否则返回(-(插入点)-1).
2.public static boolean equals(long[] a,long[] a2)
如果两个指定的long型数组相等,则返回true。
如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组相等。也就是说,如果两个数组以相同顺序包含相同元素,则两个数组相等。(Byte,short,Int亦然)
3.public static void fill(int[] a,int val)
将指定的int值分配给指定的int型数组指定范围中的每个元素,同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)
4.public sstatic void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列,同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)