大家好,今天是java数组的最后一篇,我来为大家介绍数组中一些常见用法,那么我们直接发车。
五.作为函数的返回值.
1数组对象在堆上,不会因为局部变量的销段而销毁.
2.new开辟新空间.
3.数组对象是在堆上的.
4.引用变量目前是在main函数里面的,它属于局部变量,当函数结束时就会被回收.
5.对象被回收,是因为没有变量引用它.
注意:
1.引用变量和我们平时所定义的基本变量的本质上只有一个区别,里面放的值是不一样的.引用的值是一个地址.
2.java里面没有所谓的*p.
public static void func(int[] tmp1) {.
trp 1 = new int[10]; 作用域就是在这个花括号里面.
}
public static void func2(int[] tmp1) {
tmp1[0]=99;
修改的是tmp1所指向的对象的内容.
}
int[] array;
array={1,2,3};
err,分两步写,在语法上是不支持的
int[] array = {1,2,4]; ok
整体初始化,只有一次机会,就是在定义的同时进行初始化。
int[] array = new int[] {1,2,3,4};
开辟了一块新的内存.
六.数组转字符串.
1、模拟实现tostring.
注:Java中提供了inva.util.Arrays句,其中包了一些操作数组的常用方法
.Arrays:操作数组相关的工具类.
用法:Arrays.toString(引用变量);(返回值是引用类型).
int[]array = new int[0];
与int[] array = null;等效.
下面我们来看看代码:
7、数组拷贝 注:Java定义数组时括号内可以写变量
接贝的前提是你要有原内容产生一个一模一样的内容这叫拷贝.
持贝应该是多出来一份,而不是还是原来那一份儿。
用法:
1.copyOf (int[] original, int newlength);
扩容两倍:
Arrays.copyOf ( array, 2*array.length);后面没见值的是默认值0
2.arraycopy (拷见的对象,拷贝的位置(int),拷贝内容放入的对象,开始放入的位置(int),拷贝个数).
注:拷贝长度要控制好,要不然会造成越界问题
下面是实现拷贝的代码:
七.Arrays工具类其他一些方法的使用:
1.Arrays.copyOfRange(int[] originl,int form, int to )
返回类型int[]
范围:[2,5)(左闭右开)指的是数组下标
2.克隆数组
例:int[] tmpe = {1,3,5,7};
int[]array=tmpe.clone();
克隆tmpe数组. 产生一个副本Object
注意:1数组当中存储的是基本类型数据时,不论怎么拷贝基本都不会出现什么问题,但如果存储的是引用数据类型,拷贝时需要考虑深浅拷贝的问题(后续会讲).
2.数组中没有负数的下标;
3. array = {1,2,3,4};
int ret = array.length 求array数组的元素个数(长度)
4.Arrays.sort ( int[] a)排序,底层是快速排序.
返回值为void.
5.Arrays.binarySearch( int[]array, int key).
返回值为int
如果找不到,返回一个负数(是mid最后一次位置加1)
最后再给大家分享一个简单的小游戏,猜数字游戏,大家有兴趣也可以去试试:
那么今天分享就到这里,谢谢大家!!!