JAVA数组基础

数组

声明一维数组有以下两种方式

数组的元素类型 数组名字[]; float A[];
数组的元素类型[] 数组名字; float[] A;

注意:与C/C++ 不同,Java不允许在声明数组中的方括号内指定数组元素的个数

创建数组

为数组分配内存空间的格式如下

数组名字 = new 数组元素的类型[数组元素个数];

声明数组和创建数组(分配内存空间)可以同时进行,例如:

float Array[] = new float[4]; 

二维数组也是如此:

int Array[][];
Array = new int[3][4];

或者:

int Array[][] = new int[3][4]; 

对于二维数组。构成二维数组的一维数组不必有相同的长度,在创建二维数组时可以分别指定构成该二维数组的一维数组的长度。

int a[][] = new int [3][];
a[0] = new int[6];
a[2] = new int[12];
a[3] = new int[8];

注意:Java允许使用int型变量的值指定数组元素的个数。

int size = 20;
double number[] = new double[size];

Length

对于一维数组,"数组名.length"的值就是数组中元素的个数;对于二维数组,"数组名.length"的值是他含有的一维数组的个数

数组的初始化

在创建数组后,系统会给每一个元素一个默认的值,例如,float型时0.0;

在声明数组的同时也可以给数组元素一个初始值,

float A[] = {12.0f,12.3f,15.4f,45.2f};

也可使用若干个一维数组初始化二维数组

int a[][] = {{1},{1,1},{1,2,3},{1,2,3,4,5}};

复制数组

两个类型相同的数组具有相同的引用,那么他们就有完全相同的内存单元

int a[] = {1,2}, b[];
b = a;//a与b的内存引用相同

单纯用赋值语句,会使后者元素值的改变影响到前者的元素值

1. arraycopy方法

让系统System调用方法:

public static void arraycopy(sourceArray,int index1,copyArray,int index2,int length)

该方法将数组sourceArray从索引index1开始的length个元素中的数据复制到copyArray中,copyArray从第index2个元素开始存放这些复制过来的数据,如果copyArray不能存放这些数据,程序运行将发生异常。

2. copyof方法

public static double[] copyOf(double[] original,int newLength)

该方法可以将original指定的数组中从索引0开始的newLength个元素复制到一个新的数组当中,并且返回这个新的数组,新数组的长度为newLength

若newLength的值大于original长度,copyOf方法返回新数组的第newLength索引后的值取默认值。

  1. copyOfRange方法
punlic static double[] copyOfRange(double[] original ,int from,int to)

该方法可以将original指定的数组从索引from到to-1的元素复制到一个新的数组当中,新的数组长度为to-from。

若to的值大于original的长度,copyOfRange方法返回新数组的第original.Length-from索引后的值取默认值。

排序与二分法查找

用Array类调用方法实现对数组的快速排序

public static void sort(double a[])//把参数a指定的double类型数组按升序排序
public static void sort(double a[],int start,int end)//把参数a指定的double类型数组中索引从start至end-1的元素按升序排序
public static int binarySearch(double[] a,double number)//判断参数numbe指定的数是否在参数a指定的数组中(前提参数a指定的数组需要有序)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值