Java 找到第一大和第二大的数组元素之间的差异
在Java中,数组是一个对象。它是一种非原始数据类型,可以存储相同数据类型的值。
根据问题的陈述,我们要找到数组中第一个最大数和第二个最大数之间的差异。
注意-数组必须是整数数组。
让我们来探索一下这篇文章,看看如何使用Java编程语言实现它。
展示一些实例
实例-1
Suppose the original array is {22, 45, 1, 10, 52, 27}
完成操作后,结果为−
数组的第二大元素为−45
数组的最大元素为−52
数组最大元素和第二大元素的差为−7
实例-2
Suppose the original array is {5, 41, 11, 21, 32, 27}
执行操作后的结果为 –
数组的第二大元素为 -32
数组的最大元素为 -41
数组的最大元素与第二大元素的差为 -9
实例-3
Suppose the original array is {18, 25, 61, 19, 55, 29}
完成操作后,结果如下所示:
数组中第二大的元素为-55
数组中最大的元素为-61
数组中最大和第二大元素的差为6
步骤
- 步骤1 - 声明并初始化一个整数数组。
-
步骤2 - 按升序对数组进行排序。
-
步骤3 - 使用“arr [n-2]”和“arr [n-1]”获取数组中第二大和最大的数字。
-
步骤4 - 减去最大和第二大的元素。
-
步骤5 - 打印数字。
语法
要获取数组的长度(即数组中的元素数量),有一个内置属性,即 长度。
下面是它的语法参考:
array.length
其中,’array’指的是数组引用。
为了对数组进行排序,Java.util包的Arrays类提供了一个内置的sort()方法。
下面是它的语法:
Arrays.sort(arr);
默认情况下,它按升序对数组进行排序。
其中,’arr’指的是数组引用。
多种方法
我们提供了不同的方法来解决问题。
- 通过使用静态初始化数组
-
通过使用用户定义的方法
让我们逐个查看程序及其输出。
方法1:通过使用静态初始化数组
示例
在这种方法中,数组元素将在程序中进行初始化。然后根据算法找出数组中第一个最大数和第二个最大数之间的差异。
import java.util.*;
public class Main {
//main method
public static void main(String[] args) {
//Declare and initialize the array elements
int arr[] = {5, 41, 11, 21, 32, 27};
//get length of an array
int n = arr.length;
//sorting an array in ascending order
Arrays.sort(arr);
//getting the second largest number of an array
int p = arr[n - 2];
//print the second largest number of an array
System.out.println("The second largest element of an array is: " + p);
//sorting an array in ascending order
Arrays.sort(arr);
//getting the largest number of an array
int q = arr[n - 1];
//print the largest number of an array
System.out.println("The largest element of an array is: " + q);
//finding the difference between largest and second largest number
int r = q - p;
System.out.println("The difference of largest and second largest element of an array is: " + r);
}
}
输出
The second largest element of an array is: 32
The largest element of an array is: 41
The difference of largest and second largest element of an array is: 9
方法2:使用用户自定义方法
示例
在这种方法中,程序会初始化数组元素。然后通过将数组作为参数调用一个用户自定义的方法,根据算法在方法内部找到数组中第一大和第二大数字之间的差。
import java.util.*;
public class Main{
//main method
public static void main(String[] args) {
//Declare and initialize the array elements
int arr[] = {18, 25, 61, 19, 55, 29};
//calling user defined method
diff(arr);
}
//user defined method
static void diff(int []arr){
//get length of an array
int n = arr.length;
//sorting an array in ascending order
Arrays.sort(arr);
//getting the second largest number of an array
int p = arr[n - 2];
//print the second largest number of an array
System.out.println("The second largest element of an array is: " + p);
//sorting an array in ascending order
Arrays.sort(arr);
//getting the largest number of an array
int q = arr[n - 1];
//print the largest number of an array
System.out.println("The largest element of an array is: " + q);
//finding the difference between largest and second largest number
int r = q - p;
System.out.println("The difference of largest and second largest element of an array is: " + r);
}
}
输出
The second largest element of an array is: 55
The largest element of an array is: 61
The difference of largest and second largest element of an array is: 6
在本文中,我们探讨了如何通过使用Java编程语言找到数组中第一个最大数和第二个最大数之间的差异。