java调用方法,返回一个倒序java 数组倒序排序,为什么没有正确结果?

关于 Java 数组的 12 个最佳方法 - 编程语言 - ITeye资讯
下面是stackoverflow中关于数组方法的相关问题中,获得最多票数的12个数组操作方法。
1.& 声明一个数组
String[] aArray = new String[5];
String[] bArray = {"a","b","c", "d", "e"};
String[] cArray = new String[]{"a","b","c","d","e"};
2.& 输出一个数组
int[] intArray = { 1, 2, 3, 4, 5 };
String intArrayString = Arrays.toString(intArray);
// print directly will print reference value
System.out.println(intArray);
// [I@7150bd4d
System.out.println(intArrayString);
// [1, 2, 3, 4, 5]
3.& 从一个数组创建数组列表
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList&String& arrayList = new ArrayList&String&(Arrays.asList(stringArray));
System.out.println(arrayList);
// [a, b, c, d, e]
4.& 检查一个数组是否包含某个值
String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);
5.& 连接两个数组
int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
// Apache Commons Lang library
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
6.& 声明一个内联数组(Array inline)
method(new String[]{"a", "b", "c", "d", "e"});
7.& 把提供的数组元素放入一个字符串
// containing the provided list of elements
// Apache common lang
String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
System.out.println(j);
// a, b, c
8.& 将一个数组列表转换为数组
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList&String& arrayList = new ArrayList&String&(Arrays.asList(stringArray));
String[] stringArr = new String[arrayList.size()];
arrayList.toArray(stringArr);
for (String s : stringArr)
System.out.println(s);
9.& 将一个数组转换为集(set)
Set&String& set = new HashSet&String&(Arrays.asList(stringArray));
System.out.println(set);
//[d, e, b, c, a]
10.& 逆向一个数组
int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//[5, 4, 3, 2, 1]
11.& 移除数组中的元素
int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
System.out.println(Arrays.toString(removed));
12.& 将整数转换为字节数组
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
for (byte t : bytes) {
System.out.format("0x%x ", t);
总的来讲还是比较实用,但是有一点不明白的是,第六点,method(new String[]{"a", "b", "c", "d", "e"}); 内联数组干嘛用呢,还请赐教,另外对于11点,移除数组中的元素,可以转换成list集合后,直接调用remove方法直接删除,jdk中支持按照索引下标删除和元素本身删除!这是我的拙见。内联数组在调用方法需要一个数组参数的时候可以直接在方法内创建,而不需要在外部创建一个变量再来传入。如果只有一个数组参数,使用 String.. 形式的可变长度参数更方便,但是对于需要传入多个数组参数的情况就可以用内联的方式传值第二问,我只能说,转换为List需要消耗更多的资源。。也许现在你不关注这个,但对效率要求非常严格的地方这种方式是有意义的我们可以看看ArrayUtils内部的实现代码:
public static Object[] remove(Object[] array, int index) {
return (Object[]) remove((Object) array, index);
private static Object remove(Object array, int index) {
int length = getLength(array);
if (index & 0 || index &= length) {
throw new IndexOutOfBoundsException("Index: " + index + ", Length: " + length);
Object result = Array.newInstance(array.getClass().getComponentType(), length - 1);
//关键!调用了System.arraycopy方法
System.arraycopy(array, 0, result, 0, index);
if (index & length - 1) {
System.arraycopy(array, index + 1, result, index, length - index - 1);
我们再来看看System.arraycopy是什么东西:
public static native void arraycopy(Object src,
Object dest, int destPos,
int length);
注意,这里是native方法,直接调用内核进行运算,效率不说比转为List快了,甚至比自己遍历一遍数组赋值都快
总的来讲还是比较实用,但是有一点不明白的是,第六点,method(new String[]{"a", "b", "c", "d", "e"}); 内联数组干嘛用呢,还请赐教,另外对于11点,移除数组中的元素,可以转换成list集合后,直接调用remove方法直接删除,jdk中支持按照索引下标删除和元素本身删除!这是我的拙见。
ArrayUtils是他自己写的方法
知道了,叫的这么正式,还以为是什么呢
内联数组是神马?以前没听说过啊
好吧。。是我没看清楚=w=
关于第8个List有个toArray()接口,分为无参数和数组参数两种
//初始准备
String[] strArray = {"aa","bb","cc"};
List&String& stringList = new ArrayList&String&(Arrays.asList(strArray));
String[] newArray1 = new String[stringList.size()];
//输入一个String数组,直接以String数组输出
newArray1 = stringList.toArray(newArray1);
System.out.println(ArrayUtils.toString(newArray1));
//无参数,直接输出Object数组
Object[] newArray2 = stringList.toArray();
System.out.println(ArrayUtils.toString(newArray2));
pangpang514 写道第11,ArrayUtils哪个包下面的?commons-lang
huihai 写道第8个没有看明白,感觉刚开始是一个数组,后面还一个数组啊,有区别吗?重点在数组和list的转换
第11,ArrayUtils哪个包下面的?
第12个是啥意思
第8个没有看明白,感觉刚开始是一个数组,后面还一个数组啊,有区别吗?
徐风子 写道 表示觉得挺好的。
相关资源推荐java 中怎么用一个方法返回return一个数组的所有元素 ,这是我的程序,为什么不对_百度知道
java 中怎么用一个方法返回return一个数组的所有元素 ,这是我的程序,为什么不对
int[] getAnd(int l)
int []data3=new int[50];
for (i=0; i&l; i++)
{ if(data1[i]==1 ||data2[i]==1)
我有更好的答案
int[] getAnd(int l)
{int []data3 =new int[50];//int z=0; //此变量纯粹多余没有用到,去掉if (l&0){for (i=0; i&l; i++){ if(data3[i]==1 ||data3[i]==1)//你写成了data1 和data2,应该是data3{ //z=1;data3[i]=1;}else
{//z=0; data3[i]=0;}}
//for (i=0; i&l; i++)return data3;
}//此处你还得定义,如果l&=0的时候,返回值是什么
return data3;就可以了吗?运行出来不是1或者0啊,data1,data2是主调函数中的数组
你要是需要用data1 data2 那你必须得传递进来(参数),否则编译器根本找不到这两个变量是什么。直接返回数组就可以。
采纳率:58%
不知道你的意思,你程序写的好乱,不必要变量真多。是要返回一个数组的内容的话,可以写个方法循环数组,将数组的各项全部存起来,循环结束将存数组的变量返回既可。
先声明个结果数组,在组装结果,再返回
这个错误貌似太多了·····
搞不懂你啥意思
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
return的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。java数组冒泡排序法,第6行报错,第8行为什么要调用这个方法?删去第8行并没有报错、、_百度知道
java数组冒泡排序法,第6行报错,第8行为什么要调用这个方法?删去第8行并没有报错、、
我有更好的答案
这是由于上面的语法错误导致下面报错的。第5行的for循环是一个条件,后面紧接着的才是真正的逻辑执行体,但是你在第5行添加了标点“;”,导致for循环强制变成了语句的格式,因此导致了错误,你只需要将for循环后面的;去除即可。
谢谢,请问第5行和第9行for循环,咋区分他后面啥时候加括号,啥时候不加呢
for循环代表了一个逻辑执行情况,他的格式为:for(初始变量;变量的范围;变量改变的表达式){循环体},当你判定在该for循环的条件内需要执行的操作可以结束的时候,那么此时添加}即可
IT行业金牌讲师
第5行for语句后面多了一个分号,删除那个分号就OK!
谢谢,请问第8行那个代码有啥意思呢
第8行的意思是输出一个空行
你好你的图片不清晰建议直接复制粘贴代码
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Java 一个方法返回多个数组可以吗?怎么实现?_百度知道
Java 一个方法返回多个数组可以吗?怎么实现?
我有更好的答案
如果多个数组 的类型 中一样的是可以实现 的可以返回一个list
或者二维数组 。。。
都是Stirng
如何实现?所谓的二维数组的本质是不是就是数组中包含了一个或多个数组啊?
是的String [][]
求具体实现!我知道能实现,但是二维数组我不会用,你说了也白说!写出来我看了才知道啊
public static void main(String[] args) {
System.out.println(strs().length);
String[][] strs=strs();
for(int i=0;i&strs.i++){
String[] str=strs[i];
for(int j=0;j&str.j++){
System.out.print(str[j]);
System.out.println();
}}private static String[][] strs() {
String[][] strs = new String[4][];
strs[0] = new String[] {};
strs[1] = new String[] { &1& };
strs[2] = new String[] { &1&, &2& };
strs[3] = new String[] { &1&, &2&, &3& };}//打印//4////1//12//123
采纳率:25%
可以啊在声明一个返回数组将所有数组都放进去返回这个数组就可以了不许用二维数组String【】 str1 =.....;String【】 str2 =.....;return new Object[]{str1,str2}
本回答被网友采纳
String[] a1 = {&a1&,&a2&,&a3&};
String[] b2 = {&b1&,&b2&,&b3&,&b4&};
String[] c3 = {&c1&,&c2&};
List&String[]& list = new ArrayList&String[]&();
list.add(a1);
list.add(b2);
list.add(c3);
return list
把数组放进一个Map当中 返回者个Map
用ArrayList啊。
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
java的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。算法识别自动折叠02 条评论分享收藏感谢收起

我要回帖

更多关于 java数组倒序排列 的文章

 

随机推荐