java 二维数组排序算法二分法

Java传递

传值:传基本数据类型

传引用:引用类型的传递,传地址

//值传递,原数据不受影响(栈内存中两个方法同时运行互不影响)

//传引用,原数据跟着改变(传的是栈内存中的地址,通过地址改变堆内存中的数据后也就是改的原数据)

如下图左边是栈内存右边是堆内存

public static void main(String[] args) {

              int i = 10;

              m1(i);

              System.out.println(i);

             

              int[] nums = {4,5,8,2};

              m2(nums);

              for (int j : nums) {

                     System.out.println(j);

              }

       }

       // 值传递,更改后,原数据不受影响(在栈内存中的不同方法互不影响m1改变不会影响i)

       public static void m1(int i) {

              i++;

              System.out.println(i);

       }

       // 引用传递,两个局部变量找到同一个堆内存对象,所以同步更改

       public static void m2(int[] nums1){

              nums1[0] = 1;

              System.out.println(nums1[0]+"---");

       }

Java数组复制(替换式复制)

arraycopy:

System.arraycopy(src,2,dest,3,3);

实现这个功能

public static void main(String[] args) {

              int[] src = {2,3,4,5,6,7,8};

              int[] dest = {11,12,13,14,15,16,17,18};

              // 某一个数组  , 中的某些元素(开始 到 结束)  ,  复制到另一个数组  ,  的指定地方

              // 源数组 , 源数组起始位置(包含) , 目标数据 , 目标数组起始位置 , 复制个数

//           System.arraycopy(src, 2, dest, 3, 3);

              m1(src, 2, dest, 3, 3);//将参数传给m1方法

              // 不需要接收返回值,因为传引用嘛

              for (int i : dest) {

                     System.out.println(i);

              }

       }

      

       public static void m1(int[] src  , int srcPos , int[] dest , int destPos , int length){

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

                     dest[destPos++] = src[srcPos++];

              }

       }

}

//(要复制的数组,复制原数组的起始位置,目标数组,目标数组下标位置,要复制的长度)

插入式复制

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值