我有兩個數組列表namesArrayList1
和namesArrayList2
,每個都包含值。Java - ArrayList/Array
我的問題是如何把兩個數組列表放在一個數組中allNames[]
?
我有兩個數組列表namesArrayList1
和namesArrayList2
,每個都包含值。Java - ArrayList/Array
我的問題是如何把兩個數組列表放在一個數組中allNames[]
?
從現有列表1
List<String> allList = new ArrayList<>(namesArrayList1)
一個新的列表添加其他所有
allList.addAll(namesArrayList2);
轉換爲數組
String[] allArray = allList.toArray(new String[]{});
我發現了一個很好的Apache Commons Lang庫的單行解決方案。
ArrayUtils.addAll(T[], T...)
代碼:
String[] both = (String[])ArrayUtils.addAll(first, second);
,或者您可以使用此代碼
int[] array1and2 = new int[namesArrayList1.length + namesArrayList2.length];
System.arraycopy(namesArrayList1, 0, array1and2, 0, namesArrayList1.length);
System.arraycopy(namesArrayList2, 0, array1and2, namesArrayList1.length, namesArrayList2.length);
這無論namesArrayList1和namesArrayList2的大小會奏效。
只需使用System.arraycopy()
:
String[] allNames = new String[namesArrayList1.size() + namesArrayList2.size()];
System.arraycopy(namesArrayList1.toArray(), 0, allNames, 0, namesArrayList1.size());
System.arraycopy(namesArrayList2.toArray(), 0, allNames, namesArrayList1.size(), namesArrayList2.size());
實施例:
List<String> list1 = new ArrayList<>();
list1.add("aa");
list1.add("bb");
list1.add("cc");
list1.add("dd");
List<String> list2 = new ArrayList<>();
list2.add("ee");
list2.add("ff");
list2.add("gg");
list2.add("jj");
String[] allNames = new String[list1.size() + list1.size()];
System.arraycopy(list1.toArray(), 0, allNames, 0, list1.size());
System.arraycopy(list2.toArray(), 0, allNames, list1.size(), list2.size());
for (String all : allNames) {
System.out.print(all+ " ");
}
輸出:
aa bb cc dd ee ff gg jj
你嘗試過什麼了嗎? –
還沒有找到答案 – RealDEV