java数组反转是什么意思?Java 数组倒序输出
大家好,关于java数组反转是什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Java 数组倒序输出的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
急急急!“java中”数组a赋给数组b是什么意思是不是错啦
这个就是一种赋值运算,首先数组a,b都为int型,而且有各自的初值a,初值就是100,200,300;b,初值就是11,12,13,14,15,16;然后b=a就是说,将a的值赋给了b,等于将b数组的值变了,现在b的值就和a是一样的都是100,200,300,数组取值是根据数组下标,下标从0开始,所以b[0]第一个数,现在给b[0]重新赋值123456所以输出就是123456,200,300
Java 数组倒序输出
System.out.print("请输入5个数字:");
Scanner stdin= new Scanner(System.in);
int[] A= new int[5];
for(int i=0;i<5;i++)A[i]=stdin.nextInt();
java.util.Arrays.sort(A);
System.out.print("倒序输出:");
for(int k= A.length-1; k>= 0; k--){
System.out.print(A[k]+"");
}
你原来的代码太乱了,所以我自己写了。然后说说你代码的问题。
首先,你String sc= stdin.next();只是得到第一个空格前的东西,所以你不可能得到"1 2 3 4 5"这样带空格的字符串,要得到带空格的一行的话,请认准String sc= stdin.nextLine();谢谢~~
然后, String []result= null;只是声明了一个叫result的数组,还没给数组分配空间呢,所以请用 String []result= new String[5];来为数组分配空间。(为什么需要给数组分配空间呢?因为为了提高效率,数组的大小被定义为不变,于是需要你为其初始化大小,即通过new array_type[num]的形式来声明)
再者, for(int i=A.length; i>=0; i--)这行也有问题,数组大小比数组最大索引大1,因为数组是从0开始计数的。还有System.out.print(result[k]);这句,你连个分隔符都没有,到时候输出来的就成一连串的数字了,比如本来应该是12 13 17 34 54的却成了1213173454,你叫人怎么看呢?
最后,你是不是要写冒泡啊?话说,你的冒泡也是猛了点吧。。四不像呢这是。。
PS:我偷懒用类库了,你们诅咒我被雷劈掉吧~~
java中String是什么
仔细看:解释的不好,还请指点!
String他很特殊,Java为他单独设计了一些方法,你不要和其他类混淆!(是被Java封装好了的)
知道构造原理以后,他其实也很简单,我先说特殊地方,就是双引号
String s="你好";此刻s指向的就是一个字符串对象,是对象!与你平时写的new很类似,只不过他这个对象放在常量池里面!你想想,有没有其他对象可以直接用双引号来声明对么?这就是特殊地方!(String s="你好"等效 String s=new String("你好");)
它的对象组成其实也很简单,底层用的是数组,和字典!
比如"abc";Java会先去看看常量池有没有abc,如果没有,它就从字典里面(就是字符集编码表)去找,先找a放进数组,然后在找b放进数组,在找c,然后就组成了一个长度为3的char类型数组了!
这个abc被封装成一个对象,放进了常量池里面!
所以等你学了容器以后,你会发现字符串的拼接组成,非常影响效率,大都使用容器进行解决这个问题了!
另外,Java是开源的,你如果想仔细研究,可以打开String源码一看究竟!
java中如何返回一个数组;
可以使用静态变量进行返回、用指针传递、通过返回传入数组的指针三种方法实现;
代码分别如下:
//方法1,用静态变量进行返回
char*SubFunction(void)
{
static char szText[5]="adfa";//用静态空间
//对p进行赋值操作
return szText;
}
void Caller()//这个函数调用SubFunction
{
TRACE("%s\n", SubFunction);
}
//方法2,用指针传递
void SubFunction(char*pText1, char*pText2)
{
//对pText1, pText2运算
strcpy(pText1,"love");
strcpy(pText2,"you");
return;
}
void Caller()//这个函数调用SubFunction
{
char szText1[5], szText2[5];//当然这里也可以动态分配内存
SubFunction(szText1, szText2);// szText1, szText2就是带回的值
TRACE("%s%s\n", szText1, szText2);
}
方法3通过返回传入数组的指针
#include<stdio.h>
double*copy1(double array[],double c1[],int n);
double*copy2(double array[],double c2[],int n);
void main(void)
{
int size=4;
double source[4]={1,2.3,4.5,6.7};
double first_copy[4];
double second_copy[4];
double*fp,*sp;
fp=copy1(source,first_copy,size);
printf("The first copy:%f,%f,%f,%f\n",fp[0],fp[1],fp[2],fp[3]);
sp=copy2(source,second_copy,size);
printf("The second copy:%f,%f,%f,%f\n",sp[0],sp[1],sp[2],sp[3]);
}
double*copy1(double array[],double c1[],int n)
{
int i;
for(i=0;i<n;i++)
c1[i]=array[i];
return c1;
}
double*copy2(double array[],double c2[],int n)
{
double*p;
int i;
for(i=0;i<n;i++)
{
p=&array[i];
c2[i]=*p;
}
return c2;
}
java数组反转是什么意思和Java 数组倒序输出的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!