zoukankan      html  css  js  c++  java
  • System.arraycopy

    public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); System 类中提供了一个 native 的静态方法 arraycopy(),可以使用这个方法来实现数组之间的复制。 对于一维数组来说, 修改副本不会影响原来的值。 对于二维数组或者一维数组中存放的是对象时, 修改副本时, 会影响原来的数组。
    public static void arraycopy(Object src,
                                 int srcPos,
                                 Object dest,
                                 int destPos,
                                 int length)
    							 
    参数:
    src  - 源数组。
    srcPos  - 源数组中的起始位置。
    dest  - 目标数组。
    destPos  - 目标数据中的起始位置。
    length  - 要复制的数组元素的数量。
    
    import java.util.Arrays;
    
    public class TestArrayCopy {
        public static void main(String args[]) {
            String[] s = {"Microsoft", "IBM", "Sun", "Oracle", "Apple"};
            String[] sBak = new String[6];
            System.arraycopy(s, 0, sBak, 0, s.length);
    
            System.out.println("sBak: " + Arrays.toString(sBak));
            sBak[4] = "Google";
            System.out.println("sBak: " + Arrays.toString(sBak));
            System.out.println("s: " + Arrays.toString(s));
    
            System.out.println();
    
            int[][] intArray = {{1, 2}, {1, 2, 3}, {3, 4}};
            int[][] intArrayBak = new int[3][];
            System.arraycopy(intArray, 0, intArrayBak, 0, intArray.length);
    
            System.out.println("intArrayBak: " + Arrays.deepToString(intArrayBak));
            intArrayBak[2][1] = 100;
            System.out.println("intArrayBak: " + Arrays.deepToString(intArrayBak));
            System.out.println("intArray: " + Arrays.deepToString(intArray));
    
            System.out.println();
    
            User[] users = {new User(1, "马士兵"), new User(2, "白鹤翔"),
                    new User(3, "左程云"), new User(4, "JavaScript权威指南"),
                    new User(5, "Java并发编程的艺术")};
            User[] usersBak = new User[6];
            System.arraycopy(users, 0, usersBak, 0, users.length);
    
            System.out.println("usersBak: " + Arrays.toString(usersBak));
            usersBak[2].setName("bhx");
            System.out.println("usersBak: " + Arrays.toString(usersBak));
            System.out.println("users: " + Arrays.toString(users));
        }
    }
    
    class User {
        private Integer id;
        private String name;
    
        public User() {
        }
    
        public User(Integer id, String name) {
            this.id = id;
            this.name = name;
        }
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "
    id: " + id + " name: " + name;
        }
    }
    

  • 相关阅读:
    在WM中画个带有边框的Panel
    在PPC上安装SQL Mobile库
    利用SQL语句清理日志
    Asp.net Ajax 中的脚本错误: Sys未定义的解决方法
    python搭建简易服务器
    STL源码剖析读书笔记第3章
    mongodb 查找 排序 索引 命令
    STL源码剖析读书笔记第2章
    词排序
    关于淘宝直通车优化的一点感悟
  • 原文地址:https://www.cnblogs.com/hgnulb/p/11377852.html
Copyright © 2011-2022 走看看