博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java集合复制和反转
阅读量:6279 次
发布时间:2019-06-22

本文共 2514 字,大约阅读时间需要 8 分钟。

  • 1.for循环方法:
  • 2.System.arraycopy()方法:
  • 3.Arrays.copyOf()方法:
  • 4.Object.clone()方法:

  

+ View code/** * @author zhengbinMac */public class Test {    public static void main(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,  int  srcPos,                                         Object dest, int destPos,                                       int length);

3.Arrays.copyOf()方法:

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

+ View codepublic static int[] copyOf(int[] original, int newLength) {  int[] copy = new int[newLength];  System.arraycopy(original, 0, copy, 0,    Math.min(original.length, newLength));  return copy;}

4.Object.clone()方法:

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

protected native Object clone() throws CloneNotSupportedException;

 

 

 

如何逆转数组列表?

解决方法

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

import java.util.ArrayList;import java.util.Collections;public class Main {   public static void main(String[] args) {      ArrayList arrayList = new ArrayList();      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]

 

转载于:https://www.cnblogs.com/zhaoyan001/p/6520159.html

你可能感兴趣的文章
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>