数组去重,你会几种方式?

您所在的位置:网站首页 如何数组去重 数组去重,你会几种方式?

数组去重,你会几种方式?

2022-05-12 15:17| 来源: 网络整理| 查看: 265

前言

数据去重是项目中经常出现的应用场景,并且面试中可能也会问到,那么你会几种数组去重方式呢?

学习更多,请点击:https://www.bilibili.com/video/BV13V411n7wJ

                              https://www.bilibili.com/video/BV1i64y1m7QR

                              https://www.bilibili.com/video/BV1jK4y1o7QM

                              https://www.bilibili.com/video/BV1dy4y1W7Db

                              https://www.bilibili.com/video/BV1Qb4y1D75J

实战使用额外空间去重

优点:实现简单、并且在循环判断过程中可以增加额外操作

缺点:需要一个额外空间大小的数组,浪费空间,多行代码实现

学习更多,请点击:https://www.bilibili.com/video/BV13V411n7wJ

                              https://www.bilibili.com/video/BV1i64y1m7QR

                              https://www.bilibili.com/video/BV1jK4y1o7QM

                              https://www.bilibili.com/video/BV1dy4y1W7Db

                              https://www.bilibili.com/video/BV1Qb4y1D75J

Set集合自动去重Java8一键去重(distinct)distinct去重注意事项

既然这么好用,那distinct是通过什么去重的呢?如果是引用类型,是通过地址去重还是通过某些字段去重呢?

distinct去重失效示例代码

学习更多,请点击:https://www.bilibili.com/video/BV13V411n7wJ

                              https://www.bilibili.com/video/BV1i64y1m7QR

                              https://www.bilibili.com/video/BV1jK4y1o7QM

                              https://www.bilibili.com/video/BV1dy4y1W7Db

                              https://www.bilibili.com/video/BV1Qb4y1D75J

结果:使用自定义对象distinct无法去重,难道distinct无法作用引用类型吗?但是刚才的String也是引用类型,但是也可以去重。自定义的对象Employee和String有什么区别吗?没错,就是hashcode()和equals()方法,String已经重写了这两个方法,自定义的Employee没有重写这两个方法。

学习更多,请点击:https://www.bilibili.com/video/BV13V411n7wJ

                              https://www.bilibili.com/video/BV1i64y1m7QR

                              https://www.bilibili.com/video/BV1jK4y1o7QM

                              https://www.bilibili.com/video/BV1dy4y1W7Db

                              https://www.bilibili.com/video/BV1Qb4y1D75J

注意:只要是涉及Map和Set这种去重的集合,或者Java8的distinct去重,都是通过hashcode()和equals来作为数据去重的依据,所以要注意重写这两个方法

小总结

无论使用Set集合去重还是使用Java8的新特性stream流的distinct去重,都是通过hashcode()和equals()自定义的策略进行去重。

学习更多,请点击:https://www.bilibili.com/video/BV13V411n7wJ

                              https://www.bilibili.com/video/BV1i64y1m7QR

                              https://www.bilibili.com/video/BV1jK4y1o7QM

                              https://www.bilibili.com/video/BV1dy4y1W7Db

                              https://www.bilibili.com/video/BV1Qb4y1D75J

作者:唐宋xy链接:https://juejin.cn/post/6954747083525980168来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3