Java 映射数组元素的值 公共类经济模型{ 公共静态void main(字符串[]args){ int[]开始时间=新的int[20]; int[]持续时间=新int[40]; int[]总持续时间=新的int[40]; int[]EndTime=newint[StarTime.length]; int[]relinqtime=新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; 指数分布exp=新指数分布(4.0); 对于(int j=1;j

Java 映射数组元素的值 公共类经济模型{ 公共静态void main(字符串[]args){ int[]开始时间=新的int[20]; int[]持续时间=新int[40]; int[]总持续时间=新的int[40]; int[]EndTime=newint[StarTime.length]; int[]relinqtime=新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; 指数分布exp=新指数分布(4.0); 对于(int j=1;j,java,arrays,eclipse,data-structures,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

使用映射,它将元素保存为键、值对,记住键应该是唯一的

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];

            }
            }
            }   
Map hashMap=new hashMap();
put(TotalDuration[5],ResAllocRAM[1]);//put(key,value)
int value=hashMap.get(TotalDuration[5]);//它将返回ResAllocRAM[1]的值

简单地图

尝试按如下方式更改线条

TotalDuration[k]=ResReqRAM[j];


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

欢迎使用堆栈溢出!请更好地格式化您的问题代码,使其在不滚动的情况下可读,显示特定和文字错误消息,并更详细地解释如何使用这些值注意:根据Java语言惯例,您应该使用以小写字母开头的名称命名变量,例如,
endTime
startTime
,而不是
endTime
StarTime
-大写字母ginning是为类型(类、枚举、接口)保留的。有人了解这些要求吗?
r.nextInt(EndTime[i])
r.nextInt((EndTime[i]-StarTime[i])+StarTime[i]的快捷方式
Map hashMap=new hashMap();详细示例:
Map hashMap=new hashMap();Integer[]Array={12,38,49,46};整数yourKey=32;hashMap.put(yourKey,array);
Map<Integer, Integer> hashMap = new HashMap<>();
hashMap.put(TotalDuration[5], ResAllocRAM[1]); //put(key,value)
int value = hashMap.get(TotalDuration[5]); //it will return you value of ResAllocRAM[1]