list消除重复数据

面试官:有一个list,有很多重复数据,现在你手写一段代码,重复的数据只留一份。

我:(仔细想了几分钟)双重循环list,内层碰到和外层一样的数据,就remove掉,都循环完了,就去完了。

面试官:这样做不会报啥异常吗?

我:……

面试官:我没啥问题了。回去等通知吧。

回去研究了一下,哦,原来list,remove后,会改变下标,4个元素,删了3,原来的下标4会变成3。按size循环可能会报下标越界。应使用iterator循环删除,可规避remove的风险。

面试官:来个list去重。

我:使用iterator循环删除重复数据。

面试官:是否有更简便方法。

我:……

面试官:回去等通知吧。

list去重真的是坑很多的一题,非常经典,方法很多,最简便方法为把list转化为set,因为set不可能有重复数据。

应系统了解arraylist源码。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,623评论 1 14
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,626评论 0 4
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 908评论 0 2
  • 1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址。为了充分利用这一特性,在主流的编程...
    废弃的root阅读 650评论 0 0
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 2,076评论 0 3

友情链接更多精彩内容