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等)

 

posted @ 2019-09-03 00:41  一只嘟嘴的鱼  阅读(213)  评论(0编辑  收藏  举报