Advertisement
Martina312

[НП] - Генеричка тројка

Aug 20th, 2020
1,928
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Comparator;
  3. import java.util.List;
  4. import java.util.Scanner;
  5.  
  6. class Triple<T extends Number>{
  7.     List<T> numbers;
  8.  
  9.     public Triple(T a, T b, T c) {
  10.         this.numbers = new ArrayList<>();
  11.         numbers.add(a);
  12.         numbers.add(b);
  13.         numbers.add(c);
  14.     }
  15.  
  16.     public double max(){
  17.         return numbers.stream().mapToDouble(Number::doubleValue).max().getAsDouble();
  18.     }
  19.  
  20.     public double avarage(){
  21.         return numbers.stream().mapToDouble(Number::doubleValue).sum() / numbers.size();
  22.     }
  23.  
  24.     public void sort(){
  25.         numbers.sort(Comparator.comparing(T::doubleValue));
  26.     }
  27.  
  28.     @Override
  29.     public String toString() {
  30.         return String.format("%.2f %.2f %.2f", numbers.get(0).doubleValue(), numbers.get(1).doubleValue(), numbers.get(2).doubleValue());
  31.     }
  32. }
  33. public class TripleTest {
  34.     public static void main(String[] args) {
  35.         Scanner scanner = new Scanner(System.in);
  36.         int a = scanner.nextInt();
  37.         int b = scanner.nextInt();
  38.         int c = scanner.nextInt();
  39.         Triple<Integer> tInt = new Triple<Integer>(a, b, c);
  40.         System.out.printf("%.2f\n", tInt.max());
  41.         System.out.printf("%.2f\n", tInt.avarage());
  42.         tInt.sort();
  43.         System.out.println(tInt);
  44.         float fa = scanner.nextFloat();
  45.         float fb = scanner.nextFloat();
  46.         float fc = scanner.nextFloat();
  47.         Triple<Float> tFloat = new Triple<Float>(fa, fb, fc);
  48.         System.out.printf("%.2f\n", tFloat.max());
  49.         System.out.printf("%.2f\n", tFloat.avarage());
  50.         tFloat.sort();
  51.         System.out.println(tFloat);
  52.         double da = scanner.nextDouble();
  53.         double db = scanner.nextDouble();
  54.         double dc = scanner.nextDouble();
  55.         Triple<Double> tDouble = new Triple<Double>(da, db, dc);
  56.         System.out.printf("%.2f\n", tDouble.max());
  57.         System.out.printf("%.2f\n", tDouble.avarage());
  58.         tDouble.sort();
  59.         System.out.println(tDouble);
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement