您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第4章:数组与方法】_数组的引用传递
发布时间:2020-11-20 11:01:02编辑:雪饮阅读()
数组的引用传递
public class Hello{
public static void main(String args[]){
int temp[]={1,3,5};
fun(temp);
for(int i=0;i<temp.length;i++){
System.out.print(temp[i]+" ");
}
}
public static void fun(int x[]){
x[0]=6;
}
}
像是这种在其它方法中将形参的数组的指定下标值修改后在php中是不影响原数组的,仅仅是该方法内的局部形参的数组指定下标值修改了。而在java中这是默认引用的。
那么php代码如
<?php
$arr=array(1,3,5);
function fun($a){
$a[0]=6;
}
fun($arr);
var_dump($arr);
?>
效果对比如

利用静态方法进行实例化数组
public class Hello{
public static void main(String args[]){
int temp[]=fun();
for(int x=0;x<temp.length;x++){
System.out.print(temp[x]);
}
}
public static int[] fun(){
int ss[]={1,3,5,7,9};
return ss;
}
}

数组排序
自己实现数组排序
public class Hello{
public static void main(String args[]){
int score[]={67,89,87,69,90,100,75,90};
int age[]={31,30,18,17,8,9,1,39};
sort(score);
print(score);
System.out.println("---------------");
sort(age);
print(age);
}
public static void sort(int temp[]){
for(int i=1;i<temp.length;i++){
for(int x=0;x<temp.length;x++){
if(temp[i]<temp[x]){
int y=temp[i];
temp[i]=temp[x];
temp[x]=y;
}
}
}
}
public static void print(int temp[]){
for(int x=0;x<temp.length;x++){
System.out.println(temp[x]+" ");
}
}
}

系统自带数组排序
public class Hello{
public static void main(String args[]){
int score[]={67,89,87,69,90,100,75,90};
int age[]={31,30,18,17,8,9,1,39};
java.util.Arrays.sort(score);
print(score);
System.out.println("---------------");
java.util.Arrays.sort(age);
print(age);
}
public static void print(int temp[]){
for(int x=0;x<temp.length;x++){
System.out.println(temp[x]+" ");
}
}
}

数组拷贝
Java这种数组拷贝,不是我理解的那种。。只是用一个数组的元素去覆盖另外一个数组的元素,可以指定原数组从什么地方开始读取元素,以及指定目标数组是从什么地方开始覆盖,以及总共读取(覆盖)元素个数。
自己实现数组拷贝
public class Hello{
public static void main(String args[]){
int i1[]={1,2,3,4,5,6,7,8,9};
int i2[]={11,22,33,44,55,66,77,88,99};
copy(i1,3,i2,1,3);
print(i2);
}
//原数组,原数组起始点,目标数组,目标数组起始点,拷贝长度
public static void copy(int s[],int s1,int o[],int s2,int len){
for(int i=0;i<len;i++){
o[s2+i]=s[s1+i];
}
}
public static void print(int temp[]){
for(int x=0;x<temp.length;x++){
System.out.println(temp[x]+" ");
}
}
}

系统自带的数组拷贝
public class Hello{
public static void main(String args[]){
int i1[]={1,2,3,4,5,6,7,8,9};
int i2[]={11,22,33,44,55,66,77,88,99};
System.arraycopy(i1,3,i2,1,3);
print(i2);
}
public static void print(int temp[]){
for(int x=0;x<temp.length;x++){
System.out.println(temp[x]+" ");
}
}
}

关键字词:java,数组,引用传递