开发者社区 问答 正文

List、Set、Map 之间的区别是什么?

List、Set、Map 之间的区别是什么?

展开
收起
问问小秘 2020-01-03 13:30:54 899 分享 版权
来自: Java开发者
1 条回答
写回答
取消 提交回答
  • LIST和set继承自collection,Map是一个接口

    List:

    可以允许重复的对象

    可以插入多个null元素

    List是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序

    常用的实现类有ArrayList,linkedList、vector,其中ArrayList最为流行,它提供了使用索引的随意访问,LinkedList则对于经常需要从list中添加删除的场合更为合适

     

    Set:

    不允许重复

    只可以插入一个null元素

    是一个无序容器,无法保证每个元素的存储顺序,Treeset通过Comparator或者Comparable维护了一个排序顺序

    Set接口最流行的几个实现类是HashSet,linkedHashSet、TreeSet。最为流行的是基于HashMap实现的HashSet,TreeSet还实现了SortedSet接口,因此TreeSet是一个根据compare()和compareTo()的定义进行排序的有序容器

     

     

    Map:

    Map不是collection的子接口或者实现类,Map是一个接口

    Map的每个Entry都持有两个对象,也就是一个键一个值,Map可能会持有相同的值对象但键对象必须是唯一的

    TreeMap也通过Comparator或者Comparable维护一个排序顺序

    Map里你可以随意拥有多个null值但是只能有一个null键

    Map流行的几个实现类HashMap、LinkedHashMap、HashTable和TreeMap

    2020-01-03 13:31:13
    赞同 展开评论