Eduardosfgg / new-project

0 stars 0 forks source link

hw16 #30

Open Eduardosfgg opened 11 months ago

Eduardosfgg commented 11 months ago

Ось приклад створення інтерфейсу на основі узагальнених типів (Generics), який містить методи для пошуку максимального та мінімального чисел в масиві з числових типів даних (Integer, Double, Long): public interface NumberSearch { T findMax(T[] numbers); T findMin(T[] numbers); } Далі можна реалізувати цей інтерфейс для конкретних типів даних: public class IntegerSearch implements NumberSearch { @Override public Integer findMax(Integer[] numbers) { Integer max = numbers[0]; for (int i = 1; i < numbers.length; i++) { if (numbers[i] > max) { max = numbers[i]; } } return max; }

@Override
public Integer findMin(Integer[] numbers) {
    Integer min = numbers[0];
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] < min) {
            min = numbers[i];
        }
    }
    return min;
}

}

public class DoubleSearch implements NumberSearch { @Override public Double findMax(Double[] numbers) { Double max = numbers[0]; for (int i = 1; i < numbers.length; i++) { if (numbers[i] > max) { max = numbers[i]; } } return max; }

@Override
public Double findMin(Double[] numbers) {
    Double min = numbers[0];
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] < min) {
            min = numbers[i];
        }
    }
    return min;
}

}

public class LongSearch implements NumberSearch { @Override public Long findMax(Long[] numbers) { Long max = numbers[0]; for (int i = 1; i < numbers.length; i++) { if (numbers[i] > max) { max = numbers[i]; } } return max; }

@Override
public Long findMin(Long[] numbers) {
    Long min = numbers[0];
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] < min) {
            min = numbers[i];
        }
    }
    return min;
}

} Тепер можна використовувати ці класи для пошуку максимального та мінімального чисел у вхідних масивах: public class Main { public static void main(String[] args) { Integer[] integers = {5, 2, 8, 1, 9}; IntegerSearch integerSearch = new IntegerSearch(); Integer maxInteger = integerSearch.findMax(integers); Integer minInteger = integerSearch.findMin(integers); System.out.println("Max integer: " + maxInteger); System.out.println("Min integer: " + minInteger);

    Double[] doubles = {2.3, 5.1, 1.8, 3.9};
    DoubleSearch doubleSearch = new DoubleSearch();
    Double maxDouble = doubleSearch.findMax(doubles);
    Double minDouble = doubleSearch.findMin(doubles);
    System.out.println("Max double: " + maxDouble);
    System.out.println("Min double: " + minDouble);

    Long[] longs = {1000L, 500L, 2000L, 800L};
    LongSearch longSearch = new LongSearch();
    Long maxLong = longSearch.findMax(longs);
    Long minLong = longSearch.findMin(longs);
    System.out.println("Max long: " + maxLong);
    System.out.println("Min long: " + minLong);
}

} Цей код виведе наступний результат: Max integer: 9 Min integer: 1 Max double: 5.1 Min double: 1.8 Max long: 2000 Min long: 500 2 public class StringHelper { public static String reverseWords(String sentence) { // Split the sentence into an array of words String[] words = sentence.split(" ");

    // Reverse each word in the array
    for (int i = 0; i < words.length; i++) {
        words[i] = reverseString(words[i]);
    }

    // Join the reversed words back into a sentence
    String reversedSentence = String.join(" ", words);

    return reversedSentence;
}

public static String reverseString(String input) {
    // Convert the input string to a character array
    char[] array = input.toCharArray();

    // Reverse the character array
    for (int i = 0; i < array.length / 2; i++) {
        char temp = array[i];
        array[i] = array[array.length - 1 - i];
        array[array.length - 1 - i] = temp;
    }

    // Convert the character array back to a string
    String reversedString = new String(array);

    return reversedString;
}

public static void main(String[] args) {
    String sentence = "Hello World";
    String reversedSentence = reverseWords(sentence);
    System.out.println(reversedSentence); // Output: olleH dlroW
}

} 3 public class Main { public static void main(String[] args) { MyClass stringObject = new MyClass<>("Hello"); stringObject.print();

    MyClass<Integer> intObject = new MyClass<>(123);
    intObject.print();

    MyClass<Double> doubleObject = new MyClass<>(3.14);
    doubleObject.print();
}

}

class MyClass { private T data;

public MyClass(T data) {
    this.data = data;
}

public void print() {
    System.out.println(data);
}

}