好吧,这可能是一个非常简单的解决方案,但我似乎无法找到它。我有两个ArrayLists:
ArrayList<Candidate>partyList and ArrayList<Party>electoralList
现在我想创建一个代表派对和候选人的2d int数组:
p c
1 1
1 2
1 3
2 1
2 2
3 1
3 2
3 3
etc.
我想我已经有了正确的循环来填充数组,但我只是错过了正确的公式来实现它。
int[][]ArrList;
for (int i=0; i<parties.size(); i++){
for(int j=0; j<parties.get(i).getPartyList().size(); j++){
ArrList[i][j]=
for-loop确实是正确的吗?然后填充数组的公式是什么?
答案 0 :(得分:0)
首先,ArrList
不应该有一个起始大写字母(它不是一个类而是一个对象)。
第二点(我觉得麻烦你)是你没有初始化矩阵而且parties.size()总是0.我不确定,因为没有足够的代码。 你可以做这样的事情
int ROWS = 10;
int COLS = 2;
int [][] matrix = new int[ROWS][];
for(int i=0; i< matrix.length; i++){
matrix[i] = new int[COLS];
}
或,使用列表
int ROWS = 10;
int COLS = 2;
List<List<Object>> matrix = new ArrayList<>(ROWS);
for (int i = 0; i < ROWS; i++) {
ArrayList<Object> row = new ArrayList<>(COLS);
for (int j = 0; j < COLS; j++) {
row.add(new Object());
}
matrix.add(row);
}
答案 1 :(得分:0)
我会尝试回答我如何理解你在这里寻找的问题。
2D阵列由嵌套阵列组成,即 ArrList [2] [3] = [[1,2,3],[1,2,3]] - >第一个数字声明多少个数组作为元素,第二个数字声明大小或如果你愿意:长度,数组元素
如果您希望将候选人和政党代表为数字。这是我的解决方案:
int[][]ArrList = new int[parties.size()][electoral.size()]
for (int depth=0; depth < parties.size(); depth++){
for(int itemIndex=0; itemIndex<parties.get(depth).getPartyList().size(); itemIndex++){
ArrList[depth][itemIndex]= itemIndex;
我希望这就是你要找的东西。
答案 2 :(得分:0)
int[][] arrList=new int[parties.size()][2];
int i=0,j=0,k=0;
for(;i<parties.size();i++,j++){
if(j==1){
arrList[k][j]=electoralList .get(--i);
j=-1;
k++;
}
else{
arrList[k][j]=parties.get(i);
}
}
arrList[k][j]=aarM.get(electoralList .size()-1);
System.out.println(Arrays.deepToString(arrList));