我是靠谱客的博主 怡然酒窝,最近开发中收集的这篇文章主要介绍Java集合有哪些?区别是什么?使用场景,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Java集合有哪些?区别是什么?使用场景?

今天我们简单聊一聊Java中的集合,Java中的集合有List,Set,Map。List和Set有着很多的相似之处,都是存储单例数据的集合,父接口都是Collection。List是有序的值允许重复,每次插入数据,不是把对象本身存储到集合中,而是在集合中用一个索引变量指向这个对象。Set是无序的不允许有重复的值出现。Map集合是存储双列数据的集合,存储的数据是无序的,键不可以重复,值可以重复。接下来详细的说说LIst,Set,Map。

1. List集合

  1. ArrayList:
    底层数据结构是数组,查询快,增删慢,查询是根据数组下标直接查询速度快,增删需要移动后边的元素和扩容,速度慢。线程不安全,效率高

  2. LinkedList:
    底层数据结构是链表,查询慢,增删快,查询需要遍历数组,速度慢,增删只需要增加或删除一个链接即可,速度快,线程不安全,效率高

  3. Vector:
    底层数据结构是数组,查询快,增删慢,线程安全,效率低

2.Set集合

  1. Hashset:
    底层数据结构是哈希表,是根据哈希算法来存取对象的,存取速度快,当Hashset中元素个数超过数组大小(默认值位0.75)时,会进行近似两倍的扩容,哈希表依赖两个方法hashcode()和equals()方法,方法的执行顺序,判断hashcode值是否相同,是:执行equals方法看其返回值,true:说明元素重复不添加,false:直接添加到集合,hashcode值不相同直接添加到集合。

  2. LinkedHashset:
    底层数据结构是链表和哈希表,由链表保证元素有序,由哈希表保证元素的唯一

  3. Treeset
    底层数据结构是红黑树(唯一,有序)由自然排序和比较器排序保证有序,根据返回值是否是0判断元素是否唯一

3.Map集合

  1. HashMap:
    HashMap是基于散列表实现的,其插入和查询的<k,v>的开销是固定的,可以通过构造器设置容量和负载因子来调整容器的性能,线程不安全,效率低

  2. TreeSet:
    基于红黑树实现,查看<k,v>时,它们会被排序,TreeMap是唯一带有subMap()方法的Map,subMap()方法可以返回一个子树。

  3. LInkedHashMap:
    类似于HashMap,但是迭代遍历它时,取得<K,V>的顺序是其插入次序,或者是最近最少使用(LRU)的次序。

4.Map取键值的两种方法

  1. 第一个,使用keySet方法,获得key的set,然后遍历set,就可以获得所有的value
  2. 第二个,使用entrySet方法,获得map中的所有键值对的一个视图,遍历就可获得所有的key、value

最后

以上就是怡然酒窝为你收集整理的Java集合有哪些?区别是什么?使用场景的全部内容,希望文章能够帮你解决Java集合有哪些?区别是什么?使用场景所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部