第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Java查找基元數(shù)組中的最大/最小值

使用Java查找基元數(shù)組中的最大/最小值

慕容3067478 2019-12-22 20:12:25
使用Java查找基元數(shù)組中的最大/最小值編寫一個函數(shù)來確定數(shù)組中的最小/最大值是很簡單的,例如:/**  *   * @param chars  * @return the max value in the array of chars  */private static int maxValue(char[] chars) {     int max = chars[0];     for (int ktr = 0; ktr < chars.length; ktr++) {         if (chars[ktr] > max) {             max = chars[ktr];         }     }     return max;}但這不是已經在某處做過的嗎?
查看完整描述

3 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

使用Commons Lang(轉換)+集合(最小/最大)

import java.util.Arrays;import java.util.Collections;import org.apache.commons.lang.ArrayUtils;public class MinMaxValue {

    public static void main(String[] args) {
        char[] a = {'3', '5', '1', '4', '2'};

        List b = Arrays.asList(ArrayUtils.toObject(a));

        System.out.println(Collections.min(b));
        System.out.println(Collections.max(b));
   }}

請注意,Arrays.asList()包裝底層數(shù)組,因此它不應該太占用內存,也不應該對數(shù)組元素執(zhí)行復制。



查看完整回答
反對 回復 2019-12-23
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

你可以簡單地使用新的Java 8 Stream小號,但你必須一起工作int。

stream實用程序類的方法Arrays為您提供了IntStream可以使用該min方法的方法。你也可以做max,sumaverage,...

getAsInt方法用于從中獲取值OptionalInt

import java.util.Arrays;public class Test {
    public static void main(String[] args){
        int[] tab = {12, 1, 21, 8};
        int min = Arrays.stream(tab).min().getAsInt();
        int max = Arrays.stream(tab).max().getAsInt();
        System.out.println("Min = " + min);
        System.out.println("Max = " + max)
    }}

== ==更新

如果執(zhí)行時間很重要,并且只想一次使用這樣的summaryStatistics()方法就可以瀏覽數(shù)據(jù)

import java.util.Arrays;import java.util.IntSummaryStatistics;public class SOTest {
    public static void main(String[] args){
        int[] tab = {12, 1, 21, 8};
        IntSummaryStatistics stat = Arrays.stream(tab).summaryStatistics();
        int min = stat.getMin();
        int max = stat.getMax();
        System.out.println("Min = " + min);
        System.out.println("Max = " + max);
    }}

這種方法可以提供比經典循環(huán)更好的性能,因為該summaryStatistics方法是簡化操作并且允許并行化。



查看完整回答
反對 回復 2019-12-23
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

是的,它是在Collections類中完成的。請注意,您需要手動將原始char數(shù)組轉換為Character []。

一個簡短的演示:

import java.util.*;public class Main {

    public static Character[] convert(char[] chars) {
        Character[] copy = new Character[chars.length];
        for(int i = 0; i < copy.length; i++) {
            copy[i] = Character.valueOf(chars[i]);
        }
        return copy;
    }

    public static void main(String[] args) {
        char[] a = {'3', '5', '1', '4', '2'};
        Character[] b = convert(a);
        System.out.println(Collections.max(Arrays.asList(b)));
    }}



查看完整回答
反對 回復 2019-12-23
  • 3 回答
  • 0 關注
  • 411 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號