簡體   English   中英

連接兩個int []

[英]Concatenating two int[]

有一些簡單的解決方案可以通過Streams連接java中的兩個String[]Integer[] 因為經常使用int[] 是否有任何直接的方式連接兩個int[]

這是我的想法:

int[] c = {1, 34};
int[] d = {3, 1, 5};
Integer[] cc = IntStream.of(c).boxed().toArray(Integer[]::new);
Integer[] dd = Arrays.stream(d).boxed().toArray(Integer[]::new);
int[] m = Stream.concat(Stream.of(cc), Stream.of(dd)).mapToInt(Integer::intValue).toArray();
System.out.println(Arrays.toString(m));

>>
[1, 34, 3, 1, 5]

它可以工作,但它實際上將int[]轉換為Integer[] ,然后再將Integer[]轉換回int[]

您可以使用IntStream.concatArrays.stream一起完成此操作,而無需任何自動裝箱或拆箱。 這是它的外觀。

int[] result = IntStream.concat(Arrays.stream(c), Arrays.stream(d)).toArray();

請注意, Arrays.stream(c)返回一個IntStream ,然后在收集到數組之前將其與其他IntStream連接起來。

這是輸出。

[1,34,3,1,5]

您可以使用IntStream.concat簡單地連接原始( int )流:

int[] m = IntStream.concat(IntStream.of(c), IntStream.of(d)).toArray();

使用for循環,以避免使用toArray()。

int[] e = new int[c.length+d.length];
int eIndex = 0;
for (int index = 0; index < c.length; index++){
    e[eIndex] = c[index];
    eIndex++;
}
for (int index = 0; index < d.length; index++){
    e[eIndex] = d[index];
    eIndex++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM