Java 数组

一维数组

声明并创建数组变量

elementType[] arrayRefVar = new elementType[arraySize];
elementType arrayRefVar[]= new elementType[arraySize];(元素类型 数组引用变量[])

推荐使用第一种方法,元素类型可以是任意数据类型,但是数组中所有元素的数据类型必须一样。

简写: elementType[] arrayRefVar = {value0,value1,...,valuek};

使用初始化数组简写方式,必须将声明、创建和初始化数组都放在一条语句中。将它们分开会产生语法错误。

声明一个数组变量时并不给数组分配内存空间,只是创建一个数组引用的存储位置,如果变量不包含对数组的引用,那么变量的值为null。 除非数组已经被创建,否则不能给它分配任何元素。

数组大小和默认值

数组一旦被创建它的大小就是固定的,不能被修改,只能通过arrayRefVar[index]引用变量(地址)和元素下标访问数组元素。 越界访问是经常出现的程序错误,会抛出一个运行时错误arrayIndexOfBoundsException,因此下标的范围不能超出0~arrayRefVar.length-1

当创建数组后,它的元素被赋予默认值。数值型基本数据类型的默认值是0,char型的默认值为'\u0000',Boolean型的默认值是false

for each 循环

for (double e : myList){ System.out.println(e); }

注意:变量e必须声明为与myList中元素相同的数据类型。

复制数组

在Java中,可以使用赋值语句复制基本数据类型的变量,但不能复制数组。
将一个数组变量赋值给另一个数组变量,list1 = list2 ;实际上是将一个数组的引用复制给另一个变量,使两个变量都指向相同的内存地址。

复制数组的方法
  • 使用循环语句逐个地复制数组中的元素
  • 使用System类中的静态方法arraycopy
    arraycopy(sourceArray,srcPos,targetArray,tarPos,length);
    参数srcPostarPos分别表示在源数组sourceArray和目标数组targetArray中的起始位置。复制的元素个数由length指定。复制完成后,源数组和目标数组具有相同的内容,但内存空间独立。
  • 使用clone方法复制数组

将数组传递给方法

当一个数组传递给方法时,数组的引用被传递给方法。即方法中的数组和传递的数组是一样的,如果改变方法中的数组,方法外的数组也会改变。
例:

public  class  test{
    public  static  void  main(String[] args){
        int[] list = {1,2,3,4,5};
        reverse(list);
        for(int i = 0;i

输出为12345 方法中的引用变量改变不影响方法外,但是方法中的数组元素改变,方法外同样改变。

二分查找法

二分查找法的前提条件是列表必须以升序排序。如果关键字在列表中,则返回其匹配元素的下标;否则返回一个负整数k,满足-k-1为插入该关键字的位置。

你可能感兴趣的:(Java 数组)