当前位置: 首页 > news >正文

公司网页网站建设 ppt大兴网站开发公司

公司网页网站建设 ppt,大兴网站开发公司,wordpress 手机pc,黄金网站app大全在项目中经常会遇到这样的场景#xff0c;就是一个list#xff0c;根据某种规则#xff0c;我要去判断里面是不是有重复的项。 难度不高#xff0c;但有点烦#xff0c;所以专门开一篇文章来记录一下#xff0c;争取弄一个相对简洁的写法。 先看一个简单的例子#xf…在项目中经常会遇到这样的场景就是一个list根据某种规则我要去判断里面是不是有重复的项。 难度不高但有点烦所以专门开一篇文章来记录一下争取弄一个相对简洁的写法。 先看一个简单的例子 //有一个list里面是long类型的数字集合 ListLong numbers new ArrayList(); numbers.add(1L); numbers.add(2L); numbers.add(2L); numbers.add(3L); numbers.add(4L); numbers.add(5L);//判断里面是否有重复 DistinctUtil util new DistinctUtil(); System.out.println(util.distinctList(numbers).size() numbers.size()); DistinctUtil是另外写的一个工具类以下是distinctList方法 public ListT distinctList(ListT rawList) {return rawList.stream().map(item - item).distinct().collect(Collectors.toList()); } 这是一个泛型方法 distinctList它接受一个 List 类型的参数 rawList返回一个经过去重处理的 List。 具体来说该方法使用 Java 8 中的 Stream API 来对 rawList 进行操作。 首先使用 stream() 把 rawList 转换为一个 Stream。然后我们用map方法对每个元素进行了一个映射就是把元素本身映射为元素本身这一步看似无意义但其实它是为了强制把 List 转化为 Stream。 接下来在数据流中使用 distinct() 去重最后用 collect(Collectors.toList()) 方法把处理后的数据流转换为 List 类型并返回。 因为numbers是有重复元素的所以结果是false。 进一步优化如果的复杂类型怎么办呢 比如有一个User类 Data Builder public class User {String name;Integer age; } 我要根据姓名是否有重复来判断就得修改一下逻辑。 public ListT distinctComplexList(ListT rawList, Function? super T,? mapLogic) {return (ListT) rawList.stream().map(item - mapLogic.apply(item)).distinct().collect(Collectors.toList()); } 这个方法可以用来从一个包含复杂元素的列表中提取指定属性去重并返回新列表。 该方法接收两个参数原始列表 rawList 和用于提取指定属性的函数接口 mapLogic。该方法使用 Java 8 的 Stream API 处理原始列表首先使用 map() 方法对每个元素进行属性提取然后使用 distinct() 方法去重最后使用 collect() 方法将 Stream 转换为列表并返回。 测试 //判断里面是否有重复 DistinctUtilUser util new DistinctUtil();ListUser users Arrays.asList(User.builder().name(鲁班七号).age(10).build(),User.builder().name(鲁班七号).age(10).build(),User.builder().name(安其拉).age(10).build() );FunctionUser, String getName User::getName; System.out.println(util.distinctComplexList(users, User::getName ).size() users.size()); 注意使用DistinctUtil的时候一定要加泛型不然User::getName的使用会有问题会报一个Non-static method cannot be referenced from a static context的错误。 对应的可以再封装两个判断是否重复的方法 public boolean isRepeat(ListT rawList){return distinctList(rawList).size() rawList.size(); }public boolean isRepeat(ListT rawList, Function? super T,? mapLogic){return distinctList(rawList).size() rawList.size(); } 现在还有个问题每次用这个工具类还得先new出一个对象来有点麻烦。 我之前试过方法如果加了static就不能用T了。其实这并不是说静态方法不能用类的泛型参数而是如果你要用类的泛型参数这个方法也得是泛型方法。 举个栗子 public static T ListT distinctList(ListT rawList) {return rawList.stream().map(item - item).distinct().collect(Collectors.toList()); } 搞定了。 本文主要就是做一个记录我是jdk1.7的忠实粉丝lamda表达式用起来还是有点磕磕绊绊后面要加油了。
http://www.hkea.cn/news/14305560/

相关文章:

  • 建设工程招标网站产品网站怎么做的
  • 保山做网站建设淘宝seo 优化软件
  • 网站建设运维合同html网页设计logo代码
  • 郑州建站系统在线咨询上传网站需要什么软件
  • 南京网站制作案例微信小程序制作免费轻站平台
  • 大型网站建设哪个好厦门思总建设有限公司网站
  • 网站访问大小 计算流量山东网站建设费用
  • 二次开发wordpress优化就是开除吗
  • 企业网站 设计需求网站建设神州互动
  • 如何做网站规划在电脑上哪里可以做网站
  • 黄石港区建设局网站学生做网站作品图片
  • 淘宝客绑定网站备案号新类型的网站
  • 中国十大发布信息网站排名青岛队建网站
  • 深圳三站合一网站建设英文外贸网站模板
  • 已经有域名 如何建设网站微网站 pc网站同步
  • 泉州网站建设电话搭建一个网站的具体步骤
  • 共享网站哪里建个人网站如何在工信部备案
  • 赣州网站建设多少钱wordpress mu安装
  • 网站虚拟主机建设官方网站开发公司
  • 青锐成长计划网站开发人员小白怎么做网站
  • 高度重视局门户网站建设人工智能的网站
  • 怎么建立网站链接广州做服装电商拿货的网站
  • 杭州网站建设(推荐乐云践新)wordpress 注册 登录界面
  • 商城网站开发报价方案手机建站图片
  • 农机网站模版wordpress构建自定义设置页面
  • 做家乡特产的网站单片机培训
  • 苏晋建设集团网站太原网站开发模板
  • 微信音乐做mp3下载网站网站开发设计实训总结
  • 长春公司推广网站电子商务网站优点
  • 杭州省建设厅网站长沙建设教育网