2017-11-09 13 views
0

問題解決Java:ファイル内の最高値と最低値を取得する方法

ファイルから最高値と最低値を探したいと思います。 ファイルの数字をStringからdoubleに変換しました。 Getメソッドを使用して最高額と最低額を検索するにはどうすればよいですか?

+0

1は、あなたの 'avg_weekly'はそれだけで3週間を持っている必要があり、非常によろしいですか? –

+0

また、「最高」と「最低」のどちらがいいかは言わなかった。それは一週間で最高の販売ですか?それはすべての週の中で最も高いですか?それは最高の毎週の合計ですか?それらのすべて? –

+0

可能な部分:https://stackoverflow.com/questions/26793926/how-to-find-the-max-and-min-values-in-an-arraylistもう1つの配列:https://stackoverflow.com/questions/13547618/java-find-high-and-low-number-in-an-arrayとリストのもう1つ:https://stackoverflow.com/questions/ 8304767/how-to-get-list-arraylistからの最大値(そこに_max_があるが_min_は似ている)。 – Tom

答えて

0
Double higher = 0; 
Double lower = 0; 
for (String item:numList) 
     { 
      Double result = Double.parseDouble(item); 
      if (result>higher) { higher = result;} 
      if (result<lower) { lower = result;} 
      //Calculate the total sales for each week 
      total += result; 
     } 
1

編集:私はStringsが標準Collections()クラスのメソッドを使用して辞書的に比較されるだろう気づいていなかったとして私が完了は、オリジナルの答えの混乱を作りました。

のでCollections()を使用して、これを行うための最善の方法は、ファイルからの読み取り中には、ArrayListにデータを置くべきカスタムComparator

Comparator<String> sort = (o1, o2) -> Double.valueOf(o1).compareTo(Double.valueOf(o2)); 
String max = Collections.max(numList, sort); 
String min = Collections.min(numList, sort); 

Try it online!

+1

それは良いです。コンパレータのメソッド参照を使用することもできます。 'Comparator sort = Comparator.comparing(Double :: valueOf);'のようなものです。 – Tom

0

を作成することです。 を入力し、mergeまたはquickを使用して番号のソートを開始します。

私はinbuild Collections.sort()メソッドを使用しています。

​​

これは問題を解決するはずです。

0
public static double getMin(List<String> list) { 
    double min = Double.MAX_VALUE; 
    for (String s : list) { 
     double d = Double.valueOf(s); 
     min = min > d ? d : min; 
    } 
    return min; 
} 

public static double getMax(List<String> list) { 
    double max = Double.MIN_VALUE; 

    for (String s : list) { 
     double d = Double.valueOf(s); 
     max = max < d ? d : max; 

    } 
    return max; 
} 

Java8例:

public static double getMinJ8(List<String> list) { 
    return list.stream().map(s -> Double.valueOf(s)).min((d1, d2) -> d1.compareTo(d2)).get(); 
} 
public static double getMaxJ8(List<String> list) { 
    return list.stream().map(s -> Double.valueOf(s)).max((d1, d2) -> d1.compareTo(d2)).get(); 
} 
0

ストアtreesetのすべての値は非常にすべての要素がソートされます。 は今firstlast

サンプルコードを使用

TreeSet s=new TreeSet(); 
    //add elements to the set 
    s.add(100); 
    s.add(200); 
    s.add(1); 
    // use first() method to get the lowest 
    System.out.println(s.first()); 
    //use last method to get the highest 
    System.out.println(s.last()); 

出力

関連する問題