java获取数组最大最小值
生活随笔
收集整理的這篇文章主要介紹了
java获取数组最大最小值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用java獲取數組最大最小值,可以采用兩種方法。一種是對數組排序,排序后的數組第一位和最后一位即為最小值和最大值。另外一種方法是假定第一個數為最大或最小值,與其余數依次比較,遍歷數組后即可得到最大或最小值。
第一種方法:使用java.util.Arrays工具對數組排序。
int[] arr = new int[] {2,5,1,9,8,6,4}; Arrays.sort(arr); Min = arr[0] Max = arr[arr.length - 1]);第二種方法:
獲取最大值
public static int getMax(int[] arr) {int max = arr[0];for(int i = 1;i < arr.length; i++) {if (max < arr[i]) {max = arr[i];}}return max;}獲取最小值
public static int getMin(int[] arr) {int min= arr[0];for(int i = 1;i < arr.length; i++) {if (min> arr[i]) {min= arr[i];}}return min;}兩種方法的優劣:第一種方法由于事先對數組排序,排序后的數組可以同時獲取最大最小值,由于使用了java數組工具,代碼量更少。第二種方法更為直接,計算量更小,最大值和最小值的計算代碼簡單,只需要改動循環內的判斷符號。兩種方法各有優劣,當數組較小且需要同時獲取最大最小值時,第一種方法更好。當數組較大時,使用第二種方法顯然可以減少計算量,有更好的響應速度。
測試:使用隨機數生成一個大小為10000000的數組,通過獲取數組最大值來比較兩種方法的計算耗時。
public static void main(String[] args) {//生成大小為10000000的隨機數組int length = 10000000;int[] arr = new int[length];Random random = new Random();for (int i = 0; i < length; i++) {arr[i] = random.nextInt(length);}//第一種方法long time1 = System.nanoTime();Arrays.sort(arr);System.out.println("最大值:" + arr[arr.length - 1]);long time2 = System.nanoTime();System.out.println("用時:" + (time2 - time1) + "納秒");//第二種方法int max = getMax(arr);System.out.println("最大值:" + max);long time3 = System.nanoTime();System.out.println("用時:" + (time3 - time2) + "納秒");}運行結果:
對同一個數組進行計算。第一種方法計算需要消耗1331255400納秒,也就是1.3秒左右。第二種方法耗時9589100納秒,也就是9.5毫秒。兩者速度相差也是非常大的,所以計算大型數組最大最小值還是推薦使用更為高效的第二種方法。
總結
以上是生活随笔為你收集整理的java获取数组最大最小值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java排序算法之冒泡排序
- 下一篇: 图像浏览界面缩放和平移操作的实现