第二高的数字ArrayList [英] Second highest number ArrayList

查看:89
本文介绍了第二高的数字ArrayList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以到目前为止,我已经获得了以下代码:

So I got this code so far:

int secondLargest = list.get(0);
int largest = list.get(0);
for (int i = 0; i < list.size(); i++)
{
    if(list.get(i) > largest)
    {
        secondLargest = largest;
        largest = list.get(i);

        if(list.get(i) > secondLargest && list.get(i) != largest)
        {
            secondLargest = list.get(i);
        }
    }
}

System.out.print("Second biggest number ");
return secondLargest;       

问题是,当我使用此代码
(列表为:)

The problem is that when I use this code (the list is:)

list2.add(1);
list2.add(2);
list2.add(10);
list2.add(9);
list2.add(8);
list2.add(7);

对第二高数字的搜索停止为2,因为最高数字为10。我该如何解决?

the "search" for the second highest number stops at 2, because 10 is the highest number. How do I fix this?

推荐答案


如果条件<<,则放置第二个 在第一个if条件之外。

Put the second if condition outside the first if condition.

因为第二大小于最大,因此您将永远不会在 if 块中找到该值,以检查其最大值。

Because second largest is smaller than largest so you will never find it in the if block which check for the largest value.

int secondLargest = (int) list.get(0);
int largest = list.get(0);
for (int i = 1; i < list.size(); i++) {
  if(list.get(i) > largest) {
    secondLargest = largest;
    largest = list.get(i);
  }
  if(list.get(i) > secondLargest && list.get(i) != largest) {
    secondLargest = list.get(i);
  }
}
System.out.print("Second biggest number ");
return secondLargest;

这篇关于第二高的数字ArrayList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆