映射数组元素的值

时间:2016-08-30 09:02:28

标签: java arrays eclipse data-structures

public class EconomicModel {

    public static void main(String[] args) {

        int[] StarTime = new int[20];
        int[] duration = new int[40];
        int[] TotalDuration = new int[40];
        int[] EndTime = new int[StarTime.length];
        int[] relinqtime = new int[20];

        int[] ResAllocRAM = {101,9,56,89,43,30,8,60,13,41,60, 20, 32,71,76,7,31,46,30,99 };


        StarTime[0] = 0;

        ExponentialDistribution exp = new ExponentialDistribution(4.0);
        for(int j = 1; j < 20; j++){
            StarTime[j] = (int)exp.sample() + 1+StarTime[j-1];

        }
            for(int k = 0; k < 20;k ++){
                duration[k] = 20 + (int)(Math.random() * ((120 - 10) + 1));

            }


            for(int k = 0; k < 20; k++){
                EndTime[k] = StarTime[k] + duration[k];

            }
            Random r = new Random();
            for (int i=0; i<20; i++){
                relinqtime[i] = r.nextInt((EndTime[i] - StarTime[i])+ StarTime[i] ) + StarTime[i];

            }
            for ( int j = 0; j<20; j++)
            for(int k =  StarTime[j]; k <= relinqtime[j]; k++){
                 TotalDuration[k]+= ResReqRAM[j];

            }
            }
            }   

我有一个名为StarTimerelinqtimeResAllocRAMTotalDuration的数组。我想基于其他三个数组为数组TotalDuration的索引赋值。就像StarTime[1]的值为5,relinqtime[1]的值为8,ResAllocRAM[1]的值为9.我想要该值TotalDuration[5]TotalDuration[6],{{ 1}}应为TotalDuration[7]的值。

我尝试了上面的代码,但是它在行ResAllocRAM[1]

上发出异常绑定错误

我应该怎么做才能映射这些数组的值并生成一个新的数组?

2 个答案:

答案 0 :(得分:0)

使用Map,它将元素保存为Key,Value对,记住键应该是唯一的。

 $('#setcookie_btn').click(setCookie('{{user.get_username}}', true, 0.042));

地图

的简单tutorial

答案 1 :(得分:0)

尝试按如下方式更改行

TotalDuration[k] = ResReqRAM[j];

如果您尝试增加TotalDuration,则将初始值设置为0,因为当您尝试在其中分配时,TotalDuration数组为空