第二大数字 ArrayList [英] Second highest number ArrayList

查看:36
本文介绍了第二大数字 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 条件 放在第一个 if 条件之外.

Put the second if condition outside the first if condition.

因为 second large 小于 largest 所以你永远不会在 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天全站免登陆