Как поместить два одномерных массива в один двумерный массив в java?
Я пытаюсь построить двумерный массив double X[][] из двух одномерных массивов X1[] и X2[].
Ввод осуществляется следующим образом:
X1 X2
0 1
0 2
1 2
1 5
2 3
2 4
3 4
3 5
4 5
4 6
5 6
5 7
6 7
И мой желаемый результат таков:
Икс
0 1
0 2
1 2
1 5
2 3
2 4
3 4
3 5
4 5
4 6
5 6
5 7
6 7
Однако он бросил исключение: java. lang.ArrayIndexOutOfBoundsException: 2
И идеи, намеки или примеры были бы очень ценны. Я хочу узнать, что я делаю неправильно.
Что я уже пробовал:
Вот фрагмент кода, который показывает реализацию массивов и некоторый контекст:
Previously in the code below is how X1[] and X2[] were initialized in line 10 and line 11 respectively: double[] degree = new double[numNodes]; for (int id = 0; id < numNodes; id++){ Vector neighbors = (Vector) netInfo.get(id); System.out.println(id+" "+neighbors+" "+neighbors.size() ); degree[id] = neighbors.size(); } double X1[] = new double[edgeList.size()]; double X2[] = new double[edgeList.size()]; double Y[] = new double[edgeList.size()]; //EBWC which is also 1-NOVER for (int edgeIndex = 0; edgeIndex < edgeList.size(); edgeIndex++){ String edge = (String) edgeList.get(edgeIndex); StringTokenizer stk = new StringTokenizer(edge); int uID = Integer.parseInt(stk.nextToken()); int vID = Integer.parseInt(stk.nextToken()); X1[edgeIndex] = degree[uID]; X2[edgeIndex] = degree[vID]; Vector uNeighbors = (Vector) netInfo.get(uID); Vector vNeighbors = (Vector) netInfo.get(vID); // finding the intersection Vector commonNeighbors = new Vector(); for (int uindex = 0; uindex < uNeighbors.size(); uindex++){ int uNeighbID = ( (Integer) uNeighbors.get(uindex) ).intValue(); if (vNeighbors.contains(uNeighbID)) { commonNeighbors.add(uNeighbID); } // check if uNeighbID is in vNeighbors // if it is there, add uNeighbID to commonNeighbors } // finding the union Vector AllNeighbors = (Vector) uNeighbors.clone(); //Set<Integer> temp=new HashSet<Integer>(); for(int vindex = 0; vindex < vNeighbors.size(); vindex++){ //temp.add(i); int i = ( (Integer) vNeighbors.get(vindex) ).intValue(); if (!AllNeighbors.contains(i)) AllNeighbors.add(i); } double NOVER = 0; if (AllNeighbors.size() > 2) NOVER = ( (double) commonNeighbors.size() )/ (AllNeighbors.size()-2); Y[edgeIndex] = 1 - NOVER; // using the intersection and union, find EBWC scores for the edge uID-vID as 1-NOVER(uID, vID) // put uID vID and the EBWC score for the edge to the TreeMap EBWC System.out.println(edgeIndex+" "+X1[edgeIndex]+" "+X2[edgeIndex]+" "+Y[edgeIndex]); }
// постройте двумерный массив X [] [], используя X1[] и X2[]
double [] [] X = {X1, X2};
для (тип int параметр rowindex = 0; параметр rowindex &ЛТ; edgeList.размер(); параметр rowindex++){
for (int colIndex = 0; colIndex < 2 (); colIndex++){
Системы.из.печать(х[параметр rowindex][colIndex]+" ");
}
Системы.из.код println();
}