国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - Java實現把兩個數組合并為一個的方法總結

Java實現把兩個數組合并為一個的方法總結

2021-02-28 11:27jaycee110905 JAVA教程

這篇文章主要介紹了Java實現把兩個數組合并為一個的方法,結合實例形式總結分析了java常用的四種數組合并操作技巧,需要的朋友可以參考下

本文實例講述了Java實現把兩個數組合并為一個的方法。分享給大家供大家參考,具體如下:

在Java中,如何把兩個String[]合并為一個?

看起來是一個很簡單的問題。但是如何才能把代碼寫得高效簡潔,卻還是值得思考的。這里介紹四種方法,請參考選用。

一、apache-commons

這是最簡單的辦法。在apache-commons中,有一個ArrayUtils.addAll(Object[], Object[])方法,可以讓我們一行搞定:

String[] both = (String[]) ArrayUtils.addAll(first, second);

其它的都需要自己調用jdk中提供的方法,包裝一下。

為了方便,我將定義一個工具方法concat,可以把兩個數組合并在一起:

static String[] concat(String[] first, String[] second) {}

為了通用,在可能的情況下,我將使用泛型來定義,這樣不僅String[]可以使用,其它類型的數組也可以使用:

static <T> T[] concat(T[] first, T[] second) {}

當然如果你的jdk不支持泛型,或者用不上,你可以手動把T換成String。

二、System.arraycopy()

?
1
2
3
4
5
6
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;
}

使用如下:

?
1
String[] both = concat(first, second);

三、Arrays.copyOf()

在java6中,有一個方法Arrays.copyOf(),是一個泛型函數。我們可以利用它,寫出更通用的合并方法:

?
1
2
3
4
5
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;
}

如果要合并多個,可以這樣寫:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}

使用如下:

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

四、Array.newInstance

還可以使用Array.newInstance來生成數組:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
}

希望本文所述對大家java程序設計有所幫助。

原文鏈接:http://blog.csdn.net/jaycee110905/article/details/9179227

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91中文字幕在线 | 国产精品乱码一区二区三区 | 亚洲国产精品自拍 | 免费毛片黄色视频 | 国产精品毛片一区二区 | 中文字幕日韩欧美 | 午夜日韩 | 91国内外精品自在线播放 | 五月天黄色片 | 好看的一级毛片 | 午夜精品久久久久久久久 | 日韩高清在线一区二区三区 | 国产乱码精品一区二区三区五月婷 | 激情五月婷婷 | 亚洲一本 | 天天操天天拍 | 亚洲综合二区 | 黄工厂精品免费观看 | 国产在线a | 亚洲精品91| 久久久久综合狠狠综合日本高清 | 欧美亚洲综合另类 | 国内av网站| 国产欧美久久久久久 | 四虎最新网站 | 亚洲午夜免费 | 日韩精品久久久久久 | a吖2020天堂网 | 中文字幕国产 | 国产精品国产a级 | 国产精品视频入口 | 日韩精品免费一区二区夜夜嗨 | 欧美一区二区三区在线视频 | 先锋影音av在线 | 亚洲成人精品在线观看 | 黑人巨大精品欧美黑白配亚洲 | 欧美日本在线 | 中文字幕第9页 | 欧美日本韩国一区二区 | 国产美女久久久 | 日韩精品www|