我有一个整数数组列表,我需要计算除最小两个整数之外的整数的平均值。我一直在尝试不同的方法,但我想我想做的是找到 min1,删除它,然后找到 min2,然后删除它。
public double computeAverageWithoutLowest2()
{
ArrayList<Student> newscores = new ArrayList<Student>(scores);
int newtotalScores=0;
int newavg=0;
int min1 = 0;
int min2 = 0;
min1 = newscores.get(0).getScore();
for (int i = 0; i< newscores.size(); i++)
{
if (newscores.get(i).getScore() < min1)
{
min1 = newscores.get(i).getScore();
}
}
现在我想从我的数组列表中删除 min1。我显然已经尝试过 newscores.remove(min1); 这是行不通的。如何找出数组 min1 中的哪个位置然后删除它?
任何帮助都会非常感谢!!
好吧,现在在查看评论后,我将代码更改为:
ArrayList<Student> newscores = new ArrayList<Student>(scores);
int newtotalScores=0;
int newavg=0;
int minPos1 = 0;
int minPos2 = 0;
int min1 = newscores.get(0).getScore();
int min2 = newscores.get(0).getScore();
for(int i = 0; i < newscores.size(); i++)
{
if(newscores.get(i).getScore() < min1)
{
min1 = scores.get(i).getScore();
minPos1 = i;
}
}
newscores.remove(minPos1);
for(int j = 0; j < newscores.size(); j++)
{
if(newscores.get(j).getScore() < min2)
{
min2 = scores.get(j).getScore();
minPos2 = j;
}
}
newscores.remove(minPos2);
这种方法可以删除 min1,但不能删除 min2,而是删除 min1 删除的相同位置。