
正文
java中数组源代码 java数组源码解析
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java 字符串数组作为参数传递结果未初始化
我明白你的意思。你是说result这个数组作为参数传递进去,在执行Converse方法后为啥还是null对吗。其实是这样。引用传递没错。但是你忘记了一件事。String [] result没有初始化,那么其实String [] result = null;所有成员变量会默认初始化,只不过引用型默认为null。这样一来,result=null。相当于你在Converse(input,result)时传了null进去。这时,pOutput=result ,即pOutput=null,执行这一句pOutput = wordArray.split(" ")后pOutput指向了一个String[]对象不为null了,但是方法结束后pOutput就弹栈了就死了而result还指向null;因此当该方法结束后result还是null。
相关问答
Q1: 用JAVA语言实现对数组[8,15,7,669,25,4,32]的非递减排序,求程序源代码及运行结果
public static void sort(int[] num){
for (int i =0;inum.length-1;i++)
for(int j=i+1;jnum.length;j++){
if (num[i]num[j]){
tmp = num[i];
num[i] =num[j];
num[j]=tmp;
}
}
}
Q2: Java数组的length属性在JDK的源代码中何处定义的?
length是数组中java中数组源代码的一个属性而已!
数组是固定的 所以申明数组的时候就已经把java中数组源代码他的length的值设置过java中数组源代码了!
java中数组源代码你猜想的不错!
Q3: java中的数组语法
一维数组
一、声明:
数组要先声明然后才能使用。
语法:数据类型 数组名[ ];或数据类型[ ] 数组名;
数据类型既可以是基本数据类型也可以是引用数据类型,数组名可以是任意的合法变量名。
如:
int [ ] score;
double height[ ];
String[ ] name;
注意,不可在数组名后的方括号内指定数组元素的个数,如int sum[10];是错误的。
二、分配空间:
声明了数组只是得到了一个存放数组的变量,并没有为数组元素分配空间,不能够使用,因此要为数组分配空间,这样数组的每个元素才有一个空间进行存储。
语法:数组名=new 数据类型[数组长度];
其中,数组长度就是能够存放的元素个数,显然应该是大于0的整数。
例如:
score=new int [30];
height =new double[10];
name=new String [30];
也可以在声明数组时就给它分配空间。
语法:数据类型 数组名[ ]=new 数据类型[数组长度];
如:int sum[ ]=new int[100];
三、赋值:
给数组元素赋值。有三种方法赋值。
方法一
语法:数组名[下标值]=值;
例如:
score[0]=89;
score[1]=56;
score[2]=75;
方法二
每一次赋值时,只有下标在变,因此,可以使用循环给数组赋值。
例如:
for (int index = 0; index args.length; index++) {
double num = Double.parseDouble(args[index]);
}
方法三
直接创建数组,将声明数组、分配空间和赋值合并完成。
语法:数据类型 数组名[ ]={值1, 值2, 值3, …, 值n };
例如:使用下列方式来创建score数组
int score[]={60,75,64,73,45};//创建一个长度为5的数组score
同时它也等价于下面的代码:int score=new int[ ]{60,75,64,73,45};
注意,直接创建并赋值的方式一般在数组元素比较少的情况下使用。它必须一并完成,如下代码是不合法的:
int[ ] score;
score={60,75,64,73,45};//错误!!
二维数组
一、声明二维数组
语法:数据类型 数组名[ ] [ ];或 数组类型[][] 数组名;或 数组类型[] 数组名[];
例如:
float boy[][];
char array[][];
int array_name[ ][ ]; 或 int [ ][ ] array_name; 或 int [ ] array_name[ ];
二、为二维数组分配空间
(1)直接为每一维分配空间
例如:int a[][]=new int[3][2];//建立3行2列数组
(2)高维开始,分别为每一维分配空间
例如:
int a[][]=new int[3][];//指定最高维的长度为3,然后分别为每一维分配空间
a[0]=new int[2];
a[1]=new int[3];
a[2]=new int[4];
三、二维数组的初始化
(1)直接为数组元素赋值
例如:
int a[][]=new int[2][2];
a[0][0]=1;
a[0][1]=2;
a[1][0]=3;
a[1][1]=4;
(2)在数组声明时为数组初始化
例如:int a[][]={{1},{2,3},{4,5,6}};
四、二维数组的引用
格式为:数组名[下标1][ 下标2];
下标1,下标2分为二维数组的第一、二维下标,同一维数组一样,也可为整型常量和表达式,并且数组下标都从0开始。
Q4: java源程序中定义一个5个元素的数组,求出平均分和总分?
//利用纯面向对象的方法,给你写一个简单的
package exam;
public class MyArray {
private double sum; //和
private double avg; //平均值
private double[] array; //容纳double类型元素的数组
public MyArray(int size){ //初始化数组的大小
array = new double[size=0?1:size]; //标示数组容量 ,不能小于等于 0 ,否则数组为1个元素的容量
}
//向 数组中添加元素,参数为变长参数 即
// addElement(1.0d);可行
//addElement(1.0d,2.0d,3.0d)可行
//处理参数时,当做数组
public void addElements(double ..elements){
//如果参数为空 ,则跳出方法
if(elements==null)
return;
//处理参数并保存到array数组,条件是参数的个数不能大于array的容量
//你可以考虑数据超多的情况,这里没有后续处理 。。
for(int i=0;ielements.lengthelements.length=array.length;i++)
array[i]=elements[i];
}
//获取数组元素累加的和
public double getSum(){
for(double el :array)
sum+=el;
return this.sum;
}
//获取数组元素的平均值,除数永远不可能为0或者负数
public double getAvg(){
this.avg = this.getSum()/this.array.length;
return this.avg;
}
//其他方法可以自己定义
//测试方法main
public static void main(String[] args){
MyArray my = new MyArray(5);
my.addElements(12.0d,13.2d,20.1d,22.4d,100d);
double sumR = my.getSum(); //得到和
double avgR = my.getAvg(); //得到平均值
//其他自己去处理吧
}
}
Q5: java中的数组能够在定以后改变长度吗
java中数组的长度不可以改变。
java中的数组的定义就是相同类型,固定长度的一组数据,一旦被初始化,长度不可更改。如果对需要用的数组的长度不确定,有两种解决办法:
第一种是在数组初始化的时候长度申请的足够大,这样做会造成内存空间的浪费,一般不推荐使用。
第二种是用java中提供的集合的方式存储数据,如List,Set和Map类型的对象存储数据,一方面这些类型的对象的长度都是动态增长的,另一方面这些类中提供了很多便于操作数据的方法,因此在对所需存储数据的多少不确定的时候,第二种方法比第一种方法更优秀。
java中数组源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java数组源码解析、java中数组源代码的信息别忘了在本站进行查找喔。








