美文网首页
Java集合框架

Java集合框架

作者: wuhuaguo丶 | 来源:发表于2019-04-10 10:54 被阅读0次

Arraylist 与 LinkedList 异同

  • ArrayList与LinkedList均线程不安全。
  • ArrayList实现了RandomAccess接口,LinkedList没有实现RandomAccess接口。原因:与底层数据结构有关,ArrayList底层是数组,数组天生支持随机访问,时间复杂度为O(1),链表需要遍历到特定位置才能访问到特定元素,时间复杂度为O(n)。

List遍历方式的选择

  • 实现RandomAccess接口的List,优先选择普通for循环,其次选择foreach循环
  • 未实现RandomAccess接口的List,优先选择iterator遍历(foreach循环的底层也是使用的iterator实现的),大size的数据,千万不要使用普通的for循环。

ArrayList与Vector的区别
Vector所有的方法都是同步的。可以由两个线程安全的访问一个Vector对象,但是一个线程访问Vector对象的话要在同步操作上浪费大量时间。
不要求线程安全的情况下尽量使用ArrayList。


HashSet如何检查重复
当你把对象加入HashSet时,HashSet会先计算对象的hashcode值来判断对象加入的位置,同时也会与其他加入的对象的hashcode值作比较,如果没有相符的hashcode,HashSet会假设对象没有重复出现。但是如果发现有相同hashcode值的对象,这时会调用equals()方法来检查hashcode相等的对象是否真的相同。如果两者相同,HashSet就不会让加入操作成功。


引用自GitHub

相关文章

网友评论

      本文标题:Java集合框架

      本文链接:https://www.haomeiwen.com/subject/jtzgiqtx.html