java 连接数组
一,使用Apache Commons的ArrayUtils
Apache Commons类库有很多,几乎大多数的开源框架都依赖于它,Commons中的工具会节省你大部分时间,它包含一些常用的静态方法和Java的扩展。是开发中提高效率的一套框架.
// apache-commons 的方法 ArrayUtils.addAll() String[] array1 = { "1", "2", "3" }; String[] array2 = { "a", "b", "c" }; String[] addAll = ArrayUtils.addAll(array1, array2); // 推荐 System.out.println(Arrays.toString(addAll)); // [1, 2, 3, a, b, c]
二,System.arraycopy()方法
System.arraycopy(源数组,源数组起始位置,目标数组,目标数组起始位置,需要赋值数组元素长度);
// System.arraycopy() 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 String[] c = new String[array1.length + array2.length]; System.arraycopy(array1, 0, c, 0, array1.length); System.arraycopy(array2, 0, c, array1.length, array2.length); System.out.println(Arrays.toString(c)); // [1, 2, 3, a, b, c]
三,Arrays.copyOf()方法
Arrays.copyOf(要复制的数组,要返回副本数组的长度);
// Arrays.copyOf() 复制指定的数组,截取或用 null 填充(如有必要),以使副本具有指定的长度。 String[] copyOf = Arrays.copyOf(array1, array1.length + array2.length); System.arraycopy(array2, 0, copyOf, array1.length, array2.length); System.out.println(Arrays.toString(copyOf)); // [1, 2, 3, a, b, c]
四,使用Arrays.copyOf()拼接多个数组
public static void main(String[] args) { String[] array1 = { "1", "2", "3" }; String[] array2 = { "a", "b", "c" }; String[] array3 = { "一", "二", "三" }; String[] concatAll = concatAll(array1, array2, array3); System.out.println(Arrays.toString(concatAll)); // [1, 2, 3, a, b, c, 一, 二, 三] } /** * 合并多个 * * @param first * @param rest * @return */ 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; }
T[]... rest 是java的不定长参数
java不定长参数参考:http://www.cnblogs.com/ooo0/p/7419777.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律