java在有相同值的情况下获取第二大,第三大的数
时间: 2024-03-06 21:46:31 浏览: 53
Java两个变量的互换(不借助第3个变量)具体实现方法
在有相同值的情况下,获取第二大和第三大的数需要稍微修改一下上面的代码。可以在排序后从后往前遍历数组,找到第二大和第三大的数。
下面是一个示例代码:
```java
public class SecondAndThirdLargestNumber {
public static void main(String[] args) {
int[] numbers = {5, 10, 3, 7, 1, 9, 7};
// 数组排序
Arrays.sort(numbers);
// 获取第二大和第三大的数
int secondLargest = 0;
int thirdLargest = 0;
for (int i = numbers.length - 2; i >= 0; i--) {
if (numbers[i] != numbers[numbers.length - 1]) {
secondLargest = numbers[i];
break;
}
}
for (int i = numbers.length - 2; i >= 0; i--) {
if (numbers[i] != numbers[numbers.length - 1] && numbers[i] != secondLargest) {
thirdLargest = numbers[i];
break;
}
}
System.out.println("第二大的数是:" + secondLargest);
System.out.println("第三大的数是:" + thirdLargest);
}
}
```
输出结果为:
```
第二大的数是:9
第三大的数是:7
```
在这个示例代码中,我使用了两个循环来寻找第二大和第三大的数。第一个循环从后往前遍历数组,找到第一个不等于最大值的数,即为第二大的数。第二个循环也是从后往前遍历数组,找到第一个不等于最大值和第二大的数的数,即为第三大的数。
阅读全文