Java連接合并2個(gè)數(shù)組(Array)的5種方法例子
1、使用泛型方法和System.arraycopy實(shí)現(xiàn)
T可以是基礎(chǔ)類型,也是類類型
public static <T> T concatenate(T a, T b) { if (!a.getClass().isArray() || !b.getClass().isArray()) { throw new IllegalArgumentException(); } Class<?> resCompType; Class<?> aCompType = a.getClass().getComponentType(); Class<?> bCompType = b.getClass().getComponentType(); if (aCompType.isAssignableFrom(bCompType)) { resCompType = aCompType; } else if (bCompType.isAssignableFrom(aCompType)) { resCompType = bCompType; } else { throw new IllegalArgumentException(); } int aLen = Array.getLength(a); int bLen = Array.getLength(b); @SuppressWarnings("unchecked") T result = (T) Array.newInstance(resCompType, aLen + bLen); System.arraycopy(a, 0, result, 0, aLen); System.arraycopy(b, 0, result, aLen, bLen); return result; }
2、使用ArrayUtils.addAll實(shí)現(xiàn)
String[] both = (String[])ArrayUtils.addAll(first, second);
3、不使用System.arraycopy實(shí)現(xiàn)
static String[] concat(String[]... arrays) { int length = 0; for (String[] array : arrays) { length += array.length; } String[] result = new String[length]; int pos = 0; for (String[] array : arrays) { for (String element : array) { result[pos] = element; pos++; } } return result; }
4、使用ObjectArrays.concat實(shí)現(xiàn)
String[] both = ObjectArrays.concat(first, second, String.class);
5、使用Arrays.copyOf()實(shí)現(xiàn)
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; }
總結(jié)
到此這篇關(guān)于Java連接合并2個(gè)數(shù)組(Array)的5種方法例子的文章就介紹到這了,更多相關(guān)Java連接合并數(shù)組Array內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 將byte中的有效長(zhǎng)度轉(zhuǎn)換為String的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇java 將byte中的有效長(zhǎng)度轉(zhuǎn)換為String的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11SpringBoot實(shí)現(xiàn)redis延遲隊(duì)列的示例代碼
延時(shí)隊(duì)列場(chǎng)景在我們?nèi)粘I(yè)務(wù)開(kāi)發(fā)中經(jīng)常遇到,它是一種特殊類型的消息隊(duì)列,本文就來(lái)介紹一下SpringBoot實(shí)現(xiàn)redis延遲隊(duì)列的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Java concurrency之公平鎖(一)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了Java concurrency之公平鎖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Kafka?日志存儲(chǔ)實(shí)現(xiàn)過(guò)程
這篇文章主要為大家介紹了Kafka?日志存儲(chǔ)的實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05利用Java實(shí)體bean對(duì)象批量數(shù)據(jù)傳輸處理方案小結(jié)
javabean是對(duì)面向?qū)ο笏枷氲囊环N具體實(shí)施的表現(xiàn),本文重點(diǎn)給大家介紹利用Java實(shí)體bean對(duì)象批量數(shù)據(jù)傳輸處理方案小結(jié),本文通過(guò)兩種方案給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2021-05-05在 Spring Boot 中集成 MinIO 對(duì)象存儲(chǔ)
MinIO 是一個(gè)開(kāi)源的對(duì)象存儲(chǔ)服務(wù)器,專注于高性能、分布式和兼容S3 API的存儲(chǔ)解決方案,本文將介紹如何在 Spring Boot 應(yīng)用程序中集成 MinIO,以便您可以輕松地將對(duì)象存儲(chǔ)集成到您的應(yīng)用中,需要的朋友可以參考下2023-09-09