如何将类中的数组放入另一个类中的单个数组中?

时间:2015-07-24 10:26:31

标签: java arrays

我有一个带有一组数组的主程序,如下所示。然后将这些数组导入另一个类(second.java)。在这里,我希望将所有数组放入一个数组('Complete_array'),这样我就可以在程序结束时单独访问它们中的每一个。

     Main.java

  public class Main{

  public enum State{A,D,H};

  Test[] tests = new Test[]{
           new Test(new State[]{State.A, State.H, State.A, State.H}),
           new Test(new State[]{State.A, State.H, State.A, State.D}),
           new Test(new State[]{State.H, State.D, State.A, State.A})
   };

第二堂课如下:

  public class Test{

public static Main.State[] in;
public static Main.State[] in_state= new Main.State[4];
public static String data_in;

Test(Main.State[] in){
    this in = in;
    this.in_state=in_state;

for( int i=0; i<in.length; i++){
    in_state[i]=in[i];
    data_in =java.util.Arrays.toString(in_state);
    data_in = data_in.replaceAll(",", "");
    data_in = data_in.replaceAll(" ","");}

System.out.println(“输入数组是”+ data_in);

我最后得到了outoput

The input arrays are[AHAH]
The input arrays are[AHAD]
The input arrays are[HDAA].

而不是这个我想找到一种方法将这些数组放入一个数组中。像这样:

complete_array[] = [AHAH,AHAD,HDAA].

有人可以告诉我怎么能实现这一点? 提前谢谢。

3 个答案:

答案 0 :(得分:2)

虽然您的代码有点令人困惑。我仍然明白你的观点。你想把两个数组合并成一个,对吗?

这可能会有所帮助:

int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {6, 7, 8, 9, 10};
//make a new array and put all the stuff of the two arrays in it.
int[] combined = new int[array1.length + array2.length];
for (int i = 0 ; i < array1.length ; i++) {
    combined[i] = array1[i];
}
for (int i = 0 ; i < array1.length ; i++) {
    combined[i + array1.length] = array2[i];
}

我认为这不是最好的方法。但它仍然是一个解决方案。

希望这有帮助!

答案 1 :(得分:0)

你可以创建一个POJO类的单个数组,它将保存所有不同数组的基地址,你可以从任何地方访问它。

答案 2 :(得分:0)

您可以在中声明列表,它将打包所有状态数组,如下所示:

private  List<State[]> list_states = new ArrayList<State[]>(); 

list_states.add(new State[]{State.A, State.H, State.A, State.H});
list_states.add(new State[]{State.A, State.H, State.A, State.D});
list_states.add(new State[]{State.H, State.D, State.A, State.A});

之后,您可以发送给您的班级测试此列表:

new Test(list_states);

在类Test的情况下,它看起来像这样:

public class Test{
public static Main.State[] in_state= new Main.State[4];
private List<State[]> list_states = new ArrayList<State[]>();


Test( List<State[]> in){
    this in = in;
    this.in_state=in_state;

for (State[] array: in){

    for( int i=0; i<array.length; i++){
        in_state[i]=array[i];
        data_in =java.util.Arrays.toString(in_state);
        data_in = data_in.replaceAll(",", "");
        data_in = data_in.replaceAll(" ","");}
        this.in_state=in_state;
    }

}

我希望它能以某种方式帮助你:)(代码可以通过你想要的想法得到更多改善,这是初稿)