java8写一个根据多=复数个key对两个不同类型的list进行匹配的共通方法
时间: 2024-05-20 16:17:15 浏览: 148
一个高效的多字段匹配算法的程序
3星 · 编辑精心推荐
public static <T, U> Map<T, U> matchLists(List<T> list1, List<U> list2, Function<U, T> keyExtractor) {
Map<T, U> map = new HashMap<>();
for (U element : list2) {
T key = keyExtractor.apply(element);
map.put(key, element);
}
Map<T, U> result = new HashMap<>();
for (T element : list1) {
U value = map.get(element);
if (value != null) {
result.put(element, value);
}
}
return result;
}
// 示例代码
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<String> list2 = Arrays.asList("one", "two", "three");
Map<Integer, String> result = matchLists(list1, list2, Integer::valueOf);
System.out.println(result); // 输出 {1=one, 2=two, 3=three}
阅读全文