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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

慕后森 2019-07-23 10:51:51
使用Java查找基元數(shù)組中的最大/最小值編寫一個(gè)函數(shù)來確定數(shù)組中的最小/最大值是很簡(jiǎn)單的,例如:/**  *   * @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;}但這不是已經(jīng)在某處做過的嗎?
查看完整描述

3 回答

?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

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

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));
   }}

請(qǐng)注意,Arrays.asList()包裝底層數(shù)組,因此它不應(yīng)該太占用內(nèi)存,也不應(yīng)該對(duì)數(shù)組元素執(zhí)行復(fù)制。


查看完整回答
反對(duì) 回復(fù) 2019-07-23
?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

你可以簡(jiǎn)單地使用新的Java 8 Stream小號(hào),但你必須一起工作int。

stream實(shí)用程序類的方法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í)行時(shí)間很重要,并且只想一次使用這樣的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);
    }}

這種方法可以提供比經(jīng)典循環(huán)更好的性能,因?yàn)樵?a >summaryStatistics方法是簡(jiǎn)化操作并且允許并行化。


查看完整回答
反對(duì) 回復(fù) 2019-07-23
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

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

一個(gè)簡(jiǎn)短的演示:

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)));
    }}


查看完整回答
反對(duì) 回復(fù) 2019-07-23
  • 3 回答
  • 0 關(guān)注
  • 914 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)