Java 如何使用一些过滤器将两个数组中的数据作为键值对存储到一个hashmap中

Java 如何使用一些过滤器将两个数组中的数据作为键值对存储到一个hashmap中,java,arrays,hashmap,Java,Arrays,Hashmap,我有两个数组,第一个是一维数组,第二个是二维数组 阵列1: 1,2,3,4,5.. 阵列2: open 1 2 2d 3 4 close open 4 5 close 最后我想要一个HashMap,它应该是 1-open, 1, 2, 2d,3,4,close 2-open,4,5,close 其中1是键,后跟值 我为我的程序尝试得到结果的代码 //converting list to two dimentional array String[][] stringArray = new S

我有两个数组,第一个是一维数组,第二个是二维数组

阵列1:

1,2,3,4,5..
阵列2:

open 1 2 2d 3 4 close
open 4 5 close
最后我想要一个HashMap,它应该是

1-open, 1, 2, 2d,3,4,close
2-open,4,5,close
其中1是键,后跟值

我为我的程序尝试得到结果的代码

//converting list to two dimentional array
String[][] stringArray = new String[EventAll.size()][];
int flag=0;
int u = 0;
for (List<Object> event : EventAll) {
    stringArray[u++] = event.toArray(new String[event.size()]);
    System.out.println(event.size());
    //iterating thought 1st array
    for (int i = 0; i < workFlowData.size(); i++){
        //iterating through 2d array
        for ( int row1 = 0; row1 <=stringArray.length ; row1++) {
            for(int column1=0; column1<=stringArray[row1].length;column1++){
                /*stringArray[row1][column1] =row1 * column1;*/
                //checking herar for open projects
                if (stringArray[row1][column1].contains("Open Project")) {
                    flag = 1;
                    System.out.println(flag);
                    if (flag == 1) {
                        Map<String,Object> map = new HashMap<String, Object>();

                        System.out.println("map:"+map.size());

                        map.put(workFlowData.get(i), stringArray.length);
                        flag=0;
                        for (int ss = 0; ss < map.size(); ss++) {
                            System.out.println(map.get(i));
                            System.out.println("map:"+map);
                            if(stringArray[row1][column1].contains("Close Project"))
                            {
                                break;
                            }           
                        }
                    } else{
                        flag=0;
                        System.out.println(flag);
                    }
                }
            }
        }
    }
//将列表转换为二维数组
String[][]stringArray=新字符串[EventAll.size()][];
int标志=0;
int u=0;
用于(列出事件:EventAll){
stringArray[u++]=event.toArray(新字符串[event.size()]);
System.out.println(event.size());
//迭代第一数组
对于(int i=0;i对于(int row1=0;row1,假设1D数组为

1,2,3,4,5
open,1,2,3,close
open,4,5,6,close
你的二维数组是

1,2,3,4,5
open,1,2,3,close
open,4,5,6,close
预期产量为

1 - open,1,2,3,close
2 - open,4,5,6,close
下面的代码应该可以工作

int[] array1 = { 1, 2, 3, 4, 5 };
String[][] array2 = { { "open", "1", "2", "close" }, { "open", "3", "4", "close" } };
HashMap<Integer, List> map = new HashMap<>();
for (int firstArray = 0; firstArray < array2.length; firstArray++ ) {
    String[] temp2DRow = array2[firstArray];
    List<String> list = new ArrayList<>();
    if (temp2DRow[0].contains("open")) {
        for (String str : temp2DRow) {
            list.add(str);
        }
    }
    map.put(array1[firstArray], list);
    System.out.println(map);
}
int[]array1={1,2,3,4,5};
字符串[][]数组2={{“打开”、“1”、“2”、“关闭”}、{“打开”、“3”、“4”、“关闭”};
HashMap=newHashMap();
for(int firstArray=0;firstArray
这里使用的一维数组是什么?打开和关闭二维数组列/行的开始和结束吗?打开,1,2 g,1,2 r,1,2 close,1,2 open,2,3 e,4,5 close,2,3..这是显示的示例数组2数据,我想在打开和关闭事件之间放置链接到上述数据的数组1的每个值。感谢附加了一个示例数据。请检查您是否可以现在它真的很混乱:{open,1,2}{g,1,2}{r,1,2}{close,1,2}{open,2,3}{e,4,5}{close,2,3},并且每当open出现时,close应该映射到1d数组的第一个数据put应该是1->open,1,2;g,1,2;r,1,2;close,1,2->open,2,3;e,4,5;close,2,3