【发布时间】:2015-08-18 17:38:04
【问题描述】:
public static void main(String[] args) {
double [] boxes;
boxes = new double[] {20, 10, 5, 40, 20, 41, 41, 2, 6, 7, 3, 4, 5, 6, 23, 34, 7, 8, 2, 2};
double heaviest = 0;
double normal = 0;
double heavy = 0;
double totalCost;
double a = 0;
double b = 0;
int repeatCount=0;
for (int i = 1; i < boxes.length; i++) {
if (boxes[i] > heaviest)
heaviest = boxes[i];
}
for(double element: boxes) {
if(element==heaviest) {
repeatCount = repeatCount+1;
}
}
System.out.println("Count :" +repeatCount);
for (int j =0; j<boxes.length; j++) {
if (boxes[j] < heaviest) {
a = boxes[j] * 2;
normal = normal+a;
} else {
b = (boxes[j] * 3.5);
heavy = heavy+b;
}
}
totalCost = normal+heavy;
System.out.println("total cost of the insuranse is "+ totalCost);
}
第 1 部分:我需要将最大的元素乘以 3.5,然后再乘以 2,然后将其相加得到总数。
第 2 部分:我还想要最大元素的出现次数。 或我们也可以将最大的元素存储在另一个数组中。
在我的代码中,我已经完成了第 1 部分,对于第 2 部分,我正在计算最大元素的出现次数。
我的问题:
如果有超过1000 个元素,是否有其他方法可以减少编译时间或优化代码?
我还尝试通过将数组转换为列表来使用Collections.frequency(myArray, largestElement)。
【问题讨论】:
-
当您从数组中获取最大元素时,您可以尝试按降序对数组进行排序。所以你会得到第一个元素来执行你所说的任务。
标签: java arrays compiler-optimization