2017-11-07 13 views
-6

私は、Employee2配列eをパラメータとして受け取り、Employee配列を返すメソッドePlusを書く必要があります。返される配列は、eより大きい1つの要素で、eのすべての要素が同じインデックスに含まれている必要があります。 eを展開するには、e = ePlus(e);を使用します。これはこれまで私が持っているものです:1つの要素が大きい配列を返す方法は?

import java.util.Scanner; 

public class MyClass { 

    public static Employee2[] ePlus(final Employee2[] e) { 
     // Code in progress 
     return new Employee[0]; 
    } 

    public static void main(final String[] args) { 
     Employee2[] e = new Employee2[0]; 
     int counter = 0; //int variable = counter 
     Scanner scanner = new Scanner(System.in); 

     e = ePlus(e); 
     System.out.println(e); 
    } 
} 

ありがとうございます!あなたは、おそらくのArrayListを使用して(必要な場合)配列として、それは変換だ返すことができるので、

+0

アレイ – SrThompson

+1

簡単な方法の代わりのArrayListを使用して、使用することである[ 'Arrays.copyOf(...)'](https://docs.oracle.com/javase/8/docs/api /java/util/Arrays.html#copyOf-U:A-int-java.lang.Class-) –

答えて

1
public Employee2[] ePlus(Employee2[] input) { 
    Employee2[] output = new Employee2[input.length + 1]; 
    System.arraycopy(input, 0, output, 0, input.length); 
    return output; 
} 
0

配列を参照して、多くのオプションを持っては変更できません。

0

@StephenCで提案されているとおり、Arrays.copyOf(T[] original, int newLength)を使用できます。

public Employee2[] expandOne(Employee2[] original) { 
    int n = original.length; 
    Employee2 [] expanded = Arrays.copyOf(original, n+1); 

    expanded[n] = new Employee2(); // Assuming Employee2 has a default constructor. 

    return expanded; 
} 
関連する問題