List Set Map之间的区别详解

1.List,Set 都继承了Collection接口,Map不是

2.List特点:①可以允许重复的对象;
②可以插入多个null元素;
③是一个有序容器,输出的顺序就是插入的顺序;
④支持for循环通过下标来遍历,也支持迭代器
⑤常用的实现类有ArrayList,LinkedList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每个元素储存本身的地址同时还要存储下一个元素的内存地址,链表增删快,查找慢
ArrayList与Vector:ArrayList是非线程安全的,效率高;Vector是线程安全的,效率慢;

3.Set特点:①无重复对象,重复会被覆盖掉;
②无序容器(元素在set中的存放位置,是根据该元素的hashCode来存放的,位置其实是固定的)
③只能迭代,因为他无序,无法用下标来循环遍历
④只允许一个null元素
⑤常用实现类HashSet,LinkedHashSet,TreeSet
HashSet:基于HashMap实现的HashSet,HashMap,HashSet是非线程安全的,HashTable是线程安全的
TreeSet:实现了SortedSet接口,所以TreeSet是一个根据compare(),compareTo()定义的进行排序的有序容器

4.Map特点:①Map不是collection的子接口或实现类。Map是一个接口;
②Map的每个Entry都持有两个对象,一个键,一个值,Map可能存在相同的值对象,但键对象必须都是唯一的
③Map里可以存在任意个null值,但只能有一个null键
④常用实现类HashMap,HashTable,LinkeHashMap,Treemap
TreeMap也通过compareable,comparetor维护了一个排序顺序
HashMap非线程安全,高效,支持null;
HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 1,976评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,744评论 0 11
  • 1, 如果加上斜的也可以。dfs加四种情况dfs(grid,i-1,j-1);dfs(grid,i+1,j+1);...
    夜皇雪阅读 204评论 0 0
  • 画了十分钟。 颜色是自己搭配的,感觉又进步了。
    夏暖心阅读 246评论 1 2