我有一个带有一组数组的主程序,如下所示。然后将这些数组导入另一个类(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].
有人可以告诉我怎么能实现这一点? 提前谢谢。
答案 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;
}
}
我希望它能以某种方式帮助你:)(代码可以通过你想要的想法得到更多改善,这是初稿)