Java 数组元素复制的三种方法

一、将数组元素逐个复制到目标数组中

例1

     //源数组
        int[] source = {10,30,20,40};
        //目标数组
        int[] target = new int[source.length];
        for (int i = 0;i < source.length;i++){
            target[i] = source[i];
        }

二、使用System类的arraycopy()方法

public static void arraycopy(Object src,int srcPos,Object dest,int desPos,int length)

例2

package com.demo;
public class ArrayCopyDemo{
   public static void main(String[] args){
     int[] a = {1,2,3,4};
     int[] b ={8,7,6,5,4,3,2,1};
     int[] c = {10,20};
     try{
        System.arraycopy(a, 0, b, 0, a.length);
        // 下面语句发生异常,目标数组c容纳不下原数组a的元素
        System.arraycopy(a, 0, c, 0, a.length);
     }catch(ArrayIndexOutOfBoundsException e){
        System.out.println(e);
     }
     for(int elem: b){
       System.out.print(elem+"  ");
     }
     System.out.println();
     for(int elem: c){
       System.out.print(elem+"  ");
     }
     System.out.println("\n");
   }
}

注意:如果目标数组不足以容纳源数组元素,会抛出异常

   java.lang.ArrayIndexOutOfBoundsException(数组下标越界异常)

三、使用Arrays类的copyOf()方法和copyOfRange()方法

1、copyOf()方法格式

以整型为例

如果newLength小于源数组的长度,则将源数组的前面若干个元素复制到目标数组。

如果newLength大于源数组的长度,则将源数组的所有元素复制到目标数组。

如:

2.copyOfRange()方法格式

以字符型为例

如:

上述代码执行后,letter数组的长度变为4,包含‘b‘、‘c‘、‘d’、‘e‘4个元素

原文地址:https://www.cnblogs.com/my-program-life/p/11020422.html

时间: 2024-08-06 03:08:35

Java 数组元素复制的三种方法的相关文章

Java 数组元素倒序的三种方式

将数组元素反转有多种实现方式,这里介绍常见的三种. 直接数组元素对换 @Test public void testReverseSelf() throws Exception { System.out.println("use ReverseSelf"); String[] strings = { "ramer", "jelly", "bean", "cake" }; System.out.println(

js之二维数组定义和初始化三种方法

方法一:直接定义并且初始化,这种遇到数量少的情况可以用 var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]] 方法二:未知长度的二维数组 var tArray = new Array();   //先声明一维 for(var k=0;k<i;k++){        //一维长度为i,i为变量,可以根据实际情况改变

Knockout获取数组元素索引的2种方法,在MVC中实现

在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespace UseIndex.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } } 在HomeController中,先模拟一个Student的集合,在投影出Name属性的集合,最后以Json返回给前台视图. using Syste

Java实现ping功能的三种方法

Java实现ping功能的三种方法 检测设备的运行状态,有的是使用ping的方式来检测的.所以需要使用java来实现ping功能. 为了使用java来实现ping的功能,有人推荐使用java的 Runtime.exec()方法来直接调用系统的Ping命令,也有人完成了纯Java实现Ping的程序,使用的是Java的NIO包(native io, 高效IO包).但是设备检测只是想测试一个远程主机是否可用.所以,可以使用以下三种方式来实现: 1.Jdk1.5的InetAddresss方式 自从Jav

【java】终止线程的三种方法

有三种方法可以使终止线程. 1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止. 2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend.resume一样,也可能发生不可预料的结果). 3.  使用interrupt方法中断线程.     1. 使用退出标志终止线程 当run方法执行完后,线程就会退出.但有时run方法是永远不会结束的.如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务.在这种情况下,一般是将这些任务放在一

Java实现ping功能的三种方法及Linux的区分

前大半部份转自:https://blog.csdn.net/futudeniaodan/article/details/52317650 检测设备的运行状态,有的是使用ping的方式来检测的.所以需要使用java来实现ping功能. 为了使用java来实现ping的功能,有人推荐使用java的 Runtime.exec()方法来直接调用系统的Ping命令,也有人完成了纯Java实现Ping的程序,使用的是Java的NIO包(native io, 高效IO包).但是设备检测只是想测试一个远程主机是

JAVA之线程同步的三种方法

最近接触到一个图片加载的项目,其中有声明到的线程池等资源需要在系统中线程共享,所以就去研究了一下线程同步的知识,总结了三种常用的线程同步的方法,特来与大家分享一下.这三种方法分别是:synchronized代码段.synchronized修饰方法/类.ThreadLocal本地线程变量. 我们通过一个例子来表现这三种方法:一张银行卡里面有300块钱,15个线程从这张银行卡中取钱,每个线程取一次且每次取20块钱:当当前余额不足100元时,则向账户中汇款20元.三种方法每种方法都有5个线程.我们预期

java中创建线程的三种方法以及区别

Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.Java可以用三种方式来创建线程,如下所示: 1)继承Thread类创建线程 2)实现Runnable接口创建线程 3)使用Callable和Future创建线程 下面让我们分别来看看这三种创建线程的方法. ------------------------继承Thread类创建线程--------------------- 通过继承Thread类来创建并启动多线程的一般步骤如下 1]d定义Thread类的子类

ava对数组元素排序的三种方式

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现.冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来.选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组. package com.study.test; import java.util.Arrays; public class TestArrSort {