ホームページ > Java > &#&チュートリアル > Java 関数ジェネリックのネストされた使用

Java 関数ジェネリックのネストされた使用

WBOY
リリース: 2024-04-25 21:51:02
オリジナル
936 人が閲覧しました

ネストされたジェネリックにより、ジェネリック メソッド内で他のジェネリック型を使用できるようになり、再利用性の高いコードが作成されます。実際には、ネストされたジェネリックを使用して配列内の 2 つのピーク要素を見つけることができます。サンプル コードでは、ジェネリック ペアを使用して結果を保存し、要素を繰り返しチェックして隣接する要素と比較することでピーク値を見つけます。

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 クラスは、異なる型の 2 つの要素を格納するネストされたジェネリックです。

実際的なケース

2 つのピーク要素の配列 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 を使用して 2 つのピーク要素を格納します。配列を反復処理し、その要素が隣接する要素よりも大きいかどうかを確認することにより、ピーク要素を見つけます。

以上がJava 関数ジェネリックのネストされた使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート