java集合反转_java集合复制和反转

1.for循环方法:

2.System.arraycopy()方法:

3.Arrays.copyOf()方法:

4.Object.clone()方法:

+View code/***@authorzhengbinMac*/

public classTest {public static voidmain(String[] args) {int[] array1 = {1,2,3,4,5};//1.通过for循环

int[] array2 = new int[5];for(int i = 0;i < array1.length;i++) {

array2[i]=array1[i];

}for(int i = 0;i < array2.length;i++) {

System.out.print(array2[i]);

}

System.out.println();//2.通过System.arraycopy()

int[] array3 = new int[5];

System.arraycopy(array1,0, array3, 0, 5);for (int i = 0; i < array3.length; i++) {

System.out.print(array3[i]);

}

System.out.println();//3.通过Arrays.copyOf()

int[] array4 = new int[5];

array4= Arrays.copyOf(array1, 5);for (int i = 0; i < array4.length; i++) {

System.out.print(array4[i]);

}

System.out.println();//4.通过Object.clone()

int[] array5 = new int[5];

array5=array4.clone();for (int i = 0; i < array5.length; i++) {

System.out.print(array5[i]);

}

}

}

1.for循环方法:

代码灵活,但效率低。

2.System.arraycopy()方法:

通过源码可以看到,其为native方法,即原生态方法。自然效率更高。

public static native void arraycopy(Object src, intsrcPos,

Object dest,intdestPos,int length);

3.Arrays.copyOf()方法:

同样看源码,它的实现还是基于System.arraycopy(),所以效率自然低于System.arraycpoy()。

+View codepublic static int[] copyOf(int[] original, intnewLength) {int[] copy = new int[newLength];

System.arraycopy(original,0, copy, 0,

Math.min(original.length, newLength));returncopy;

}

4.Object.clone()方法:

从源码来看同样也是native方法,但返回为Object类型,所以赋值时将发生强转,所以效率不如之前两种。

protected native Object clone() throws CloneNotSupportedException;

如何逆转数组列表?

解决方法

下面的示例反转使用Collections.reverse(ArrayList)方法的数组列表。

importjava.util.ArrayList;importjava.util.Collections;public classMain {public static voidmain(String[] args) {

ArrayList arrayList= newArrayList();

arrayList.add("A");

arrayList.add("B");

arrayList.add("C");

arrayList.add("D");

arrayList.add("E");

System.out.println("Before Reverse Order: " +arrayList);

Collections.reverse(arrayList);

System.out.println("After Reverse Order: " +arrayList);

}

}

结果

上面的代码示例将产生以下结果。

Before Reverse Order: [A, B, C, D, E]

After Reverse Order: [E, D, C, B, A]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值