2010-09-20 52 views

回答

3

Commons Util ArrayUtils.add:

static String[] SET2 = ArrayUtils.add(SET1, {"4", "5", "6" }); 
+0

我想我們需要使用對象[]和使用中的addAll而不是鑄造回的String [] – user339108 2010-09-20 10:39:36

+0

我希望當有不克隆2組有限參數。 ArrayUtils.addAll([「a」,「b」,「c」],[「1」,「2」,「3」])= [「a」,「b」,「c」,「1」 「2」,「3」]。克隆似乎在這裏是多餘的。 – user339108 2010-09-20 10:40:10

2

也許列表是在這種情況下更容易,因爲陣列是固定的長度(自然)。如果你想靜態實例化你可以做這樣的事情。

private static final List<String> SET1 = new ArrayList<String>(); 
private static final List<String> SET2 = new ArrayList<String>(); 
static { 
    SET1.add("1"); 
    SET1.add("2"); 
    SET2.addAll(SET1); 
    SET2.add("3"); 
} 

或者使用某種集合實用程序庫。

0

這是一個大丑:

private static final String[] SET1 = { "1", "2", "3" }; 
private static final String[] SET2 = concat(
    String.class, SET1, new String[]{"4", "5", "6"}); 

@SuppressWarnings("unchecked") 
static <T> T[] concat(Class<T> clazz, T[] A, T[] B) { 
    T[] C= (T[]) Array.newInstance(clazz, A.length+B.length); 
    System.arraycopy(A, 0, C, 0, A.length); 
    System.arraycopy(B, 0, C, A.length, B.length); 
    return C; 
} 
0
private static final String[] SET1 = { "1", "2", "3" }; 
private static final String[] SET2; 

static 
{ 
    List<String> set2 = new ArrayList<String>(Arrays.asList(SET1)); 
    set2.addAll(Arrays.asList("3", "4", "5")); 
    SET2 = set2.toArray(new String[0]); 
} 
相關問題