You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java泛型映射:编写特定静态泛型map方法的技术问询

实现静态泛型map方法的解决方案

没问题,我来帮你搞定这个泛型方法的实现。先理清楚核心需求:我们要写一个静态泛型方法map,它能接收一个转换函数和LinkedList输入,把列表里的每个元素按转换规则处理后,返回一个顺序完全一致的新LinkedList。

第一步:明确Function接口定义

你已经给出了接口的规范,我们先把它明确下来:

public interface Function<X, Y> {
    public Y apply(X x);
}

第二步:实现泛型map方法

我建议把这个方法放到一个工具类里,比如CollectionUtils,这样后续复用起来更方便:

import java.util.LinkedList;

public class CollectionUtils {

    // 静态泛型map方法,支持任意类型X和Y的转换
    public static <X, Y> LinkedList<Y> map(Function<X, Y> function, LinkedList<X> inputList) {
        LinkedList<Y> resultList = new LinkedList<>();
        // 按顺序遍历输入列表的每个元素
        for (X element : inputList) {
            // 调用apply方法转换元素,直接添加到结果列表
            resultList.add(function.apply(element));
        }
        return resultList;
    }
}

第三步:示例验证(用你提到的输入列表)

比如你说的输入列表xs = [72, 9, 21, 174],我们写个测试类看看效果:

public class MapDemo {
    public static void main(String[] args) {
        LinkedList<Integer> xs = new LinkedList<>();
        xs.add(72);
        xs.add(9);
        xs.add(21);
        xs.add(174);

        // 示例1:把每个整数转成带前缀的字符串
        LinkedList<String> stringResult = CollectionUtils.map(new Function<Integer, String>() {
            @Override
            public String apply(Integer x) {
                return "数值:" + x;
            }
        }, xs);
        System.out.println(stringResult);
        // 输出:[数值:72, 数值:9, 数值:21, 数值:174]

        // 示例2:计算每个整数的平方
        LinkedList<Integer> squareResult = CollectionUtils.map(new Function<Integer, Integer>() {
            @Override
            public Integer apply(Integer x) {
                return x * x;
            }
        }, xs);
        System.out.println(squareResult);
        // 输出:[5184, 81, 441, 30276]
    }
}

额外小提示(Java 8+适用)

如果你的项目用的是Java 8及以上版本,可以用Lambda表达式简化匿名内部类的写法,比如上面的平方计算可以改成这样:

LinkedList<Integer> squareResult = CollectionUtils.map(x -> x * x, xs);

代码会简洁很多,效果完全一样。

内容的提问来源于stack exchange,提问作者kiaora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:34:26