>Java >java지도 시간 >Java 함수 제네릭의 중첩된 사용

Java 함수 제네릭의 중첩된 사용

WBOY
WBOY원래의
2024-04-25 21:51:02939검색

중첩된 제네릭을 사용하면 제네릭 메서드 내에서 다른 제네릭 유형을 사용할 수 있어 재사용성이 높은 코드를 만들 수 있습니다. 실제로 중첩된 제네릭을 사용하여 배열에서 두 개의 피크 요소를 찾을 수 있습니다. 샘플 코드는 일반 쌍을 사용하여 결과를 저장하고 요소를 반복적으로 확인하고 인접한 요소와 비교하여 피크 값을 찾습니다.

Java 函数泛型的嵌套使用

Java 함수 제네릭의 중첩 사용

제네릭은 다양한 데이터 유형에서 작동할 수 있는 재사용 가능한 코드를 생성할 수 있는 강력한 Java 언어 기능입니다. 함수 제네릭을 사용하면 함수 내에서 제네릭을 사용할 수 있으므로 유연성이 향상됩니다.

중첩 제네릭

중첩 제네릭은 제네릭 메서드 내에서 다른 제네릭 유형을 사용하는 것을 의미합니다. 이를 통해 특히 복잡한 데이터 구조를 다룰 때 재사용 가능성이 높은 코드를 만들 수 있습니다.

다음은 중첩된 제네릭의 예입니다.

public class Pair<T, U> {
    private T first;
    private U second;

    public Pair(T first, U second) {
        this.first = first;
        this.second = second;
    }

    public T getFirst() {
        return first;
    }

    public U getSecond() {
        return second;
    }
}

Pair 클래스는 서로 다른 유형의 두 요소를 저장하는 중첩된 제네릭입니다. Pair 类是一个嵌套泛型,它存储两个类型不同的元素。

实战案例

让我们考虑一个需要返回两个峰值元素的数组 nums 的场景。峰值元素是指比其相邻元素都大的元素。

以下是一个使用嵌套泛型的 Java 代码:

public class FindPeakElements {

    public static <T extends Comparable<T>> Pair<T, T> findPeakElements(T[] nums) {
        if (nums == null || nums.length < 3) {
            throw new IllegalArgumentException("Invalid array size");
        }

        T firstPeak = nums[0];
        T secondPeak = nums[nums.length - 1];

        for (int i = 1; i < nums.length - 1; i++) {
            T current = nums[i];
            T prev = nums[i - 1];
            T next = nums[i + 1];

            if (current > prev && current > next) {
                if (current > firstPeak) {
                    secondPeak = firstPeak;
                    firstPeak = current;
                } else if (current > secondPeak) {
                    secondPeak = current;
                }
            }
        }

        return new Pair<>(firstPeak, secondPeak);
    }

    public static void main(String[] args) {
        Integer[] nums = {1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1};
        Pair<Integer, Integer> peaks = findPeakElements(nums);
        System.out.println("First peak: " + peaks.getFirst());
        System.out.println("Second peak: " + peaks.getSecond());
    }
}

这个代码使用嵌套泛型 Pair

🎜실용 사례🎜🎜🎜두 개의 피크 요소로 구성된 nums 배열을 반환해야 하는 시나리오를 고려해 보겠습니다. 피크 요소는 인접한 요소보다 큰 요소입니다. 🎜🎜다음은 중첩된 제네릭을 사용하는 Java 코드입니다. 🎜rrreee🎜이 코드는 중첩된 제네릭 Pair를 사용하여 두 개의 피크 요소를 저장합니다. 배열을 반복하고 요소가 이웃 요소보다 큰지 확인하여 피크 요소를 찾습니다. 🎜

위 내용은 Java 함수 제네릭의 중첩된 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.