Java如何将两个数组合并为一个数组呢?

2023-05-16

数组:

数组(Array)是有序的元素序列。 [1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 [1] 这些有序排列的同类数据元素的集合称为数组

下文笔者讲述将两个数组合并的方法分享,如下所示:

数组合并是我们日常经常遇见的需求,下文笔者将一一道来,如下所示

方式一、apache-commons

使用apache-commons中的ArrayUtils.addAll(Object[], Object[])
    
 String[] both = (String[]) ArrayUtils.addAll(first, second);
 static String[] concat(String[] first, String[] second) {}
 static <T> T[] concat(T[] first, T[] second) {}
如果jdk不支持泛型,将T换成String

方式二、System.arraycopy()

 static String[] concat(String[] a, String[] b) {
   String[] c= new String[a.length+b.length];
 
   System.arraycopy(a, 0, c, 0, a.length);
   System.arraycopy(b, 0, c, a.length, b.length);
 
   return c; 
 }

方式三、Arrays.copyOf()

在java6中,有一个方法Arrays.copyOf(),是一个泛型函数。我们可以利用它,写出更通用的合并方法

public static <T> T[] concat(T[] first, T[] second) {
     T[] result = Arrays.copyOf(first, first.length + second.length);
     System.arraycopy(second, 0, result, first.length, second.length);
     return result;
}

public static <T> T[] concatAll(T[] first, T[]... rest) {
       int totalLength = first.length; 
       for (T[] array : rest) {
             totalLength += array.length;
        }
   
        T[] result = Arrays.copyOf(first, totalLength);
        int offset = first.length;
  
       for (T[] array : rest) {
            System.arraycopy(array, 0, result, offset, array.length);
            offset += array.length;
       }
  
       return result;
  } 

String[] both = concat(first, second);
String[] more = concat(first, second, third, fourth);

方式四、Array.newInstance

       private static <T> T[] concat(T[] a, T[] b) {
           final int alen = a.length;
           final int blen = b.length;
   
           if (alen == 0) {
               return b;
           }
           if (blen == 0) {
               return a;
           }
  
          final T[] result = (T[]) java.lang.reflect.Array.
                  newInstance(a.getClass().getComponentType(), alen + blen);
          System.arraycopy(a, 0, result, 0, alen);
          System.arraycopy(b, 0, result, alen, blen);
  
          return result;
      } 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java如何将两个数组合并为一个数组呢? 的相关文章

  • Liunx下源代码安装&&make&&makefile

    Linux下安装软件的方式分为源代码安装和二进制安装 源代码安装 xff0c 即使用应用程序源代码进行编译安装二进制安装 xff0c 例如red hat发行的 rpm包 debian发行的 deb包 源代码安装 用c语言为例 include
  • Linux下rpm&yum&apt-get

    RPM简介 RPM命名 RedHat Package Manager xff0c 简称则为RPM 属于Red Hat阵营的 xff0c 与其并列的则是debian centos中大部分我们安装都是使用yum install xff0c 而d
  • Java面试题复习整理(多线程)

    文章目录 1 aio nio bio epoll select2 reactor模式介绍Reactor软件工程java代码总结 3 Java中的cas乐观锁4 自旋锁是什么 xff1f 自旋锁 amp amp 自适应自旋锁 amp amp
  • Grpc&&protocol buffer结合提供grpc服务

    Grpc amp amp protocol buffer 关于下载 xff1a 首先下载一个protobuf 对于mac系统就brew install protobuf 就可以了 然后可以 protoc version 看下安装的版本号 x
  • 指针p,*p,&p之间的区别

    假设我们定义一个指针p 那么会经常使用到三个符号 xff1a 1 xff0c p xff1b p是一个指针变量的名字 xff0c 表示此指针变量指向的内存地址 xff0c 如果使用 p来输出的话 xff0c 它将是一个16进制数 2 xff
  • 自己经历的Java面试题(附答案)

    本篇记录一下自己面试的一些中大厂的 1 3年Java开发的面试题以及自己对题目理解的答案 xff08 结合网上查的资料 xff09 部分可能更新的不及时 xff0c 有问题可以评论区讨论 面试题不分先后 1 hashmap rehash 过
  • Redisson相关使用&&分布式锁浅析

    注 xff1a 本篇的redisson版本基于3 13 3 xff1b 本篇的demo将我写的源代码贴了出来 xff0c 每个方法都有清晰的注释 xff0c 分布式锁相关的代码以及验证是我手动验证Redis中key状态来判断的 文章目录 简
  • SpringBoot实战elasticSearchAPI微服务开发

    文章目录 前言启动一个ElasticSearchSpringBoot引入ElasticSearch索引创建 amp amp 更新插入删除 写 操作ElasticSearch的API查询操作源码参考 前言 本文准备记录一下ElasticSea
  • Leetcode链表刷题思路汇总

    链表 链表相关的题 xff0c 最快的入门方法就是做题的时候画图 标注A的next节点是哪里 xff0c 单链表的遍历只能是单向的 xff0c 从头结点到尾结点 例如 xff1a 给你一个链表的head头 xff0c 让你返回最后元素的值
  • Java基础之字符串&equals、==、包装类、常量池

    在java中有三中对字符串的操作方式 注 xff1a 文章只注明思路原理 不注明方法 xff0c 看API就行了 文章就涉及到啥写啥了 xff0c 哈哈 xff0c 瞅着可能乱一点 但是这么写就很舒服 1 String 常量 效率较低 指的
  • 基于激光雷达的人型识别(无人车)

    原文在这 finalobject cn 这个项目是无人车里的一部分 xff0c 完成激光雷达的驱动 xff0c 数据采集然后后期的处理以及人型识别 xff0c 并不涉及车辆硬件的控制 主要分三个大块讲吧 xff0c 硬件驱动 数据聚类 xf
  • ARM Cortex M4 SVC指令作用

    xff08 1 xff09 SVC指令 xff1a 摘自 http infocenter arm com help index jsp topic 61 com arm doc dui0203ic Cacdfeci html 与更早版本的
  • SVC和PendSV

    转载于 xff1a http book 2cto com 201209 4625 html 1 xff0e SVC SVC xff08 Supervisor Call xff09 指令用于产生一个SVC异常 它是用户模式代码中的主进程 xf
  • esp8266烧录Html文件,实现内置网页控制设备!

    代码地址如下 xff1a http www demodashi com demo 14321 html 一 前言 xff1b 这个月也快结束了 xff0c 时间真快 xff0c 我服务器知识自学依然在路途中 xff0c 这几天听到热点网页配
  • Golang创建XML

    package main import 34 encoding xml 34 34 fmt 34 34 io ioutil 34 type Post struct XMLName xml Name 96 xml 34 post 34 96
  • xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    1 解压 tar zxvf wmsdk bundle xxxxxxx tar gz cd wmsdk bundle xxxxxxx 2 make installpkgs 或者installpkgs sh 3 安装gcc arm none e
  • 超声波换能器的几点总结

    超声波换能器是超声波测量的关键件 xff0c 必须保证超声波换能器的质量以及特性稳定 1 超声波换能器的激励信号频率接近谐振频率是触发信号强度最大 2 传感器是被动元器件 xff0c 激励信号进行激励会产生震动 xff0c 接收端接收信号
  • windows7安装ubuntu双系统教程

    转载自 xff1a http www cnblogs com masbay p 10745170 html windows7安装ubuntu双系统教程 一 先搞清楚自己电脑的类型 xff1a 本次安装的Ubuntu的电脑类型是MBR传统bi
  • STM32 串口详解

    目录 01 USART的特点 02 USART简介 2 1 数据传输模型 2 2 帧结构 2 3 波特率 03 STM32的USART 04 代码配置 01 USART的特点 USART是通用异步收发传输器 xff08 UniversalA
  • STM32串口开发之环形缓冲区

    01 简介 在之前的文章 stm32 串口详解 中 xff0c 我们讲解了串口的基本应用 xff0c 使用串口中断接收数据 xff0c 串口中断发送回包 xff08 一般可以使用非中断形式发送回包 xff0c 在数据接收不频繁的应用中 串口

随机推荐

  • 第六章 类域

    第六章 类域 一 类作用域 使用 访问全局变量 int x 61 1 namespace wd int x 61 20 class Test public Test int value x value void print int x co
  • 步进电机使用总结之噪声、振动的抑制

    不正确地驱动步进电机很容易导致电机发出 嗡嗡 的噪声和很大的振动 当驱动步进电机时 xff0c 如果发现步进电机处于静止状态时 xff0c 其内部都发出很明显的噪音 xff0c 有点类似线圈快速变化那种 xff0c 一般是由于线圈电流过大导
  • ADRC自抗扰控制学习

    入门 自抗扰控制01 xff1a 为何ADRC会成为百年PID算法的继承者 xff1f http news eeworld com cn mp ZLG a23516 jspx 自抗扰控制02 ADRC如何避免执行错误命令 http news
  • 关于串级PID控制的理解

    1 关于内环积分器 飞控里经常会用到串级PID控制 xff0c 通常设计方法为从内环到外环 xff0c 如速度环 位置环 内环通常为PD控制 xff0c 或P控制 xff0c 因为要保证一定带宽 xff0c 而积分器会抑制内环的带宽 xff
  • UMD代码格式

    span class token punctuation span span class token keyword function span span class token punctuation span root span cla
  • Tomcat Server.xml配置详解

    在理解Tomcat配置之前 xff0c 需要先熟悉一下Tomcat的架构 xff0c 便于更好的修改配置 一 Tomcat结构 server xff1a 即服务器 xff0c 每个tomcat程序启动后 xff0c 就是一个server s
  • Linux下U盘、SD卡挂载与卸载

    1 手动挂载 卸载 U盘 SD卡 对于ARM Linux来说 xff0c 第一次使用U盘或SD时 xff0c U盘这个文件目录是不能直接进入的 xff0c 我们需要对其进行挂载 xff0c 然后再接下来的使用中就可以直接进行使用了 通过再网
  • Java 阻塞队列--BlockingQueue

    1 什么是阻塞队列 xff1f 阻塞队列 xff08 BlockingQueue xff09 是一个支持两个附加操作的队列 这两个附加的操作是 xff1a 在队列为空时 xff0c 获取元素的线程会等待队列变为非空 当队列满时 xff0c
  • 大厂SQL经典面试题(二)留存问题

    留存率 是用户分析的核心指标之一 xff0c 留存问题也是一个经常考的题目 问题 现场写一道SQL 给定用户表Users 求出每个日期对应的活跃用户数 次日留存用户数 次日留存率 指标定义 某日活跃用户数 某日活跃的去重用户数 N日留存用户
  • 程序猿代码面试指南 PDF

    前言 今年是最难求职年 xff0c 我希望通过这篇文章能帮大家提高求职成功率 这篇文章分为简历篇 面试篇 谈薪酬篇 xff0c 包括了找工作过程中各个环节的技巧和防坑指南 这篇文章就是给大家分享左神这本 程序员代码面试指南 IT名企算法与数
  • 从 Java 代码逆向工程生成 UML 类图和序列图

    前言 本文面向于那些软件架构师 xff0c 设计师和开发人员 xff0c 他们想使用 IBM Rational Software Architect 从 Java 源代码来逆向工程生成 UML 类和序列图 逆向工程经常被用来从已有的源代码中
  • http的三次握手

    在http的三次握手当中 xff0c 首先客户端发起一个我要发送一个数据包的请求 xff0c 发送到服务端 xff0c 这里面呢会有一个标志SYN 61 1 Seq 61 X xff0c syn是一个标识 xff0c 就是我这是一个创建请求
  • SQL优化面试专题

    介绍 xff1a 无论您是创建Web应用程序的开发人员 xff0c 还是参与Web测试的DBA或测试人员 xff0c SQL方面的技巧在数据库编程和数据库验证中都非常重要 因此 xff0c 我们整理了QL性能优化方面的面试问题 SQL性能优
  • Docker容器:将带UI的程序直接转为Web应用,so easy

    摘要 xff1a 使用Docker容器 xff0c 将带UI的程序 xff0c 直接转换为Web应用 很方便 xff0c 跟大家分享一下 本文分享自华为云社区 使用Docker容器 xff0c 将带UI的程序 xff0c 直接转为Web应用
  • 38道多线程核心面试题(附答案)

    前言 今天给大家分享的是比较全面的多线程面试题 xff0c 大家在面试的过程中不免会被问到很多专业性的问题 xff0c 有的时候回答的并不是那么全面和精细 xff0c 这仅仅代表个人观点 1 如何预防死锁 xff1f 1 首先需要将死锁发生
  • Java程序员,最常用的20%技术有哪些?

    1 基本的数据结构和算法真的非常重要 xff1a 不管你做过多少项目或者是熟悉多少框架和工具 xff0c 面试和考察一个人还是大部分停留在基本功上 所以 xff0c 在每天工作开发之余 xff0c 应保证一定的时间段不断去打磨自己的基本功
  • Linux 程序编译过程详解

    大家肯定都知道计算机程序设计语言通常分为机器语言 汇编语言和高级语言三类 高级语言需要通过翻译成机器语言才能执行 xff0c 而翻译的方式分为两种 xff0c 一种是编译型 xff0c 另一种是解释型 xff0c 因此我们基本上将高级语言分
  • 关于485总线 A、B端上拉下拉电阻选择

    问 xff1a about rs485 用电阻上拉 B用电阻下拉 A B间用电阻连接 xff0c 这些电阻参数大致多少 xff1f 我们公司的设计是 TTL输入都用光偶隔离 输出加上拉和下拉 xff0c 中间加TVS和2个电阻串联 xff0
  • JAVA集合框架(一)-ARRAYLIST

    1 ArrayList的特点 存放的元素有序元素不唯一 可以重复 随机访问快插入删除元素慢非线程安全 2 底层实现 底层初始化 xff0c 使用一个Object类型的空对象数组 xff0c 初始长度为0 源码 Object类型对象数组引用
  • Java如何将两个数组合并为一个数组呢?

    数组 xff1a 数组 xff08 Array xff09 是有序的元素序列 1 若将有限个类型相同的变量的集合命名 xff0c 那么这个名称为数组名 组成数组的各个变量称为数组的分量 xff0c 也称为数组的元素 xff0c 有时也称为下