美文网首页
泛型程序设计-泛型类

泛型程序设计-泛型类

作者: 掌灬纹 | 来源:发表于2023-10-12 17:33 被阅读0次

为什么要使用泛型:
泛型程序设计意味着编写的代码可以对多种不同类型的对象重用,可以以工厂的角度去理解。

泛型使用的三个水平

  • 基本水平,仅使用JDK定义好的泛型类,如ArrayList
  • 混合使用不同泛型类,了解参数化泛型类内部工作原理
  • 实现自己的泛型类与泛型方法,提供其它程序员使用

定义简单的泛型类解决一个简易问题

如何在一个方法中返回一系列字符串中的,字典序最小值和字典序最大值?

  • 泛型类定义
package com.ht.actuatorlearn.generic;

/**
 * 最简单的泛型类 T作为表示任意类型
 * 如果还有可用相邻的 U和S代替
 *
 * @author: lht
 * @date: 2023-10-13
 */
public class Pair<T> {
    private T first;

    private T second;

    public T getFirst() {
        return first;
    }

    public void setFirst(T first) {
        this.first = first;
    }

    public T getSecond() {
        return second;
    }

    public void setSecond(T second) {
        this.second = second;
    }

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

    public Pair() {
        this.first = null;
        this.second = null;
    }
}
  • 示例

compareTo方法,比较两个字符串时,相同返回0,前一个小返回负整数,前一个大返回正整数。

package com.ht.actuatorlearn.generic;

/**
 * 泛型示例
 *
 * 编写一个方法 获取一个字符串数组最大值与最小值
 *
 * @author: lht
 * @date: 2023-10-13
 */
public class PairMinMax {
    public static void main(String[] args) {
        String[] words = new String[]{"Tandy", "Lucy", "Mirror", "Array", "Well"};
        Pair<String> pair = ArrayAlg.minMax(words);
        System.out.println("Max: " + pair.getFirst() + ", Min: " + pair.getSecond());
    }

    private static class ArrayAlg {

        /**
         * 获取数组中的最大值与最小值
         *
         * @param arr 原数组
         * @return pair
         */
        public static Pair<String> minMax(String[] arr) {
            if (arr == null || arr.length == 0) {
                return null;
            }
            String min = arr[0];
            String max = arr[0];
            for (int i = 0; i < arr.length; i++) {
                if (i == 0) {
                    continue;
                }
                // 字典序靠前
                if (min.compareTo(arr[i]) > 0) {
                    min = arr[i];
                }
                // 字典序靠后
                if (max.compareTo(arr[i]) < 0) {
                    max = arr[i];
                }
            }
            return new Pair<>(min, max);
        }
    }
}


相关文章

  • 泛型程序设计

    泛型程序设计 为什么要使用泛型程序设计 类型参数使程序具有更好的可读性和安全性 定义简单泛型类 泛型方法 类型变量...

  • 【泛型】通配符与嵌套

    上一篇 【泛型】泛型的作用与定义 1 泛型分类 泛型可以分成泛型类、泛型方法和泛型接口 1.1 泛型类 一个泛型类...

  • Java 19-5.1泛型

    泛型类定义泛型类可以规定传入对象 泛型类 和泛型方法 泛型接口 如果实现类也无法确定泛型 可以在继承类中确定泛型:

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • Java 泛型

    泛型类 例如 泛型接口 例如 泛型通配符 泛型方法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型上下边...

  • 泛型

    关于泛型类,泛型方法,泛型接口泛型类:public class FanXingLeiDemo {//这里是泛...

  • Java泛型与Kotlin泛型

    正文 本文主要列举Java泛型与Kotlin泛型的基本知识,以及两者的区别。 什么泛型 泛型程序设计是程序设计的一...

  • 泛型

    1.什么是泛型? 2.为什么需要泛型? 3.泛型类、接口 泛型类注意事项: 从泛型类派生子类 泛型接口 泛型接口的...

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

  • 重走安卓进阶路——泛型

    ps.原来的标题 为什么我们需要泛型? 泛型类、泛型接口和泛型方法(泛型类和泛型接口的定义与泛型方法辨析); 如何...

网友评论

      本文标题:泛型程序设计-泛型类

      本文链接:https://www.haomeiwen.com/subject/xdrobdtx.html