【发布时间】:2016-01-05 02:32:49
【问题描述】:
所以到目前为止我得到了这个代码:
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;
问题是当我使用这段代码时 (名单是:)
list2.add(1);
list2.add(2);
list2.add(10);
list2.add(9);
list2.add(8);
list2.add(7);
对第二大数字的“搜索”在 2 处停止,因为 10 是最大数字。我该如何解决这个问题?
【问题讨论】:
-
我认为最简单的方法是对数组进行排序并获取第二个元素(当然,取决于顺序,所以我假设它是按降序排序的)。此外,如果您可以使用 Collections 框架,则可以使用
SortedSet。