arraylist的arraylist的大小

时间:2015-04-26 19:58:03

标签: arraylist

public static ArrayList<int []>[] activity=new ArrayList[nbAct];

public static ArrayList<int[]> services;

public ActivityServices(){

 for(int i=0;i<nbAct;i++){
   activity[i]=null;
   for(int j=0;j<nbService;){
        services.add(j,null);`
        int[] qostab=new int[nbQoS];
        for(int q=0;q<nbQoS;q++){
            qostab[q]=valuesServices[q][i][j];
            }
        services.set(j, qostab);
            j++;
    }activity[i]=services;
}    

我使用activity []在我的类中添加其他服务,之后我需要使用它们。知道每个活动[i]有不同的大小:
           即:         活动[1] ---&gt; 2项服务         活动[2] ---&gt; 6项服务      我希望它为活动[1]显示2,为活动[2]显示6,而不是我拥有的元素数量= 2 + 2 + 6 = 10

2 个答案:

答案 0 :(得分:0)

有几点需要注意:

  • qostab [q]是valuesServices [q] [i] [j]
  • 中包含的任何内容的数组
  • qostab [q]的值(valuesServices [q] [i] [j]的值)被添加到索引位置j的服务
  • 您的原始代码可能存在错误,但据我所知,您的意思是将服务置于活动中[i]
  • services是int []的ArrayList。它不是int的ArrayList。这可能是您未获得预期输出的原因。

更正(?)代码:

public ActivityServices(){

 for(int i=0;i<nbAct;i++){
   activity[i]=null;

   for(int j=0;j<nbService;){
        services.add(j,null);`
        int[] qostab=new int[nbQoS];

        for(int q=0;q<nbQoS;q++){
            qostab[q]=valuesServices[q][i][j];
        }
        services.set(j, qostab);
    }
    activity[i]=services;
}    

答案 1 :(得分:0)

非常感谢您的时间和解释。 我的错误是在循环之外创建服务,这不会在每个活动中创建新的“服务”。因此,当我显示活动[i]的大小时,它会给我服务的大小,因为它是唯一存在的服务。