栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何比较数组列表与现代Java的相等性?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何比较数组列表与现代Java的相等性?

1) 基于Java 8流的解决方案:

List<List<String>> first = list1.stream().map(Arrays::asList).collect(toList());List<List<String>> second = list2.stream().map(Arrays::asList).collect(toList());return first.equals(second);

2) 更简单的解决方案(适用于Java 5+):

return Arrays.deepEquals(list1.toArray(), list2.toArray());

3) 关于您的新要求(首先检查包含的String数组的长度),您可以编写一个通用的辅助方法,对转换后的列表进行相等性检查:

<T, U> boolean equal(List<T> list1, List<T> list2, Function<T, U> mapper) {    List<U> first = list1.stream().map(mapper).collect(toList());    List<U> second = list2.stream().map(mapper).collect(toList());    return first.equals(second);}

那么解决方案可能是:

return equal(list1, list2, s -> s.length)    && equal(list1, list2, Arrays::asList);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430171.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号