Collection,List,Set,Map的区别

本文详细对比了Java集合框架中Collection与Map的区别,并深入探讨了List、Set与Map的不同实现类的特点,包括ArrayList、LinkedList、HashSet、TreeSet、HashMap和TreeMap等。

首先我们将它们分成两类,一类是Collection,List,Set,另一类是Map。气质List和Set是Collection的子接口。

Collection与Map比较

      1.Collection只有一列(就像数组或链表一样),而Map有两列(一个是键,一个是键对应的值)。

      2.Map中的键是不可以重复的,而Collection中有两个子接口(这里我们只说这四个接口,下面也一样),List是可以重复的,Set是不可以重复的。

List和Set的比较

       1.不同点:

           List是有序并且可重复的。其中包含LinkedList,ArrayList,Vector三个实现类。

           Set是无序并且不重复的。其中包含HashSet,TreeSet两个实现类。

        2.相同点:

           它们都是Collection的子接口。

List和Map的比较

       1.不同点 

         List是有序并且可重复的。其中包含LinkedList,ArrayList,Vector三个实现类。

         Map是无序并且不可重复的。其中包含TreeMap和HashMap两个实现类。

         Map是一个顶级接口,而List是继承的顶级接口Collection。

       2.它们都是接口。


——————————————————————————————————————————————————————————————————————————

正好这会儿还有空,我想总结一下,这些接口的实现类有什么异同?

一.List接口的两个实现类LinkedList和ArrayList

LinkedList是基于链表的形式存储数据的,所以他插入删除比较快,查询比较慢,要从第一个开始索引。

ArrayList是基于数组的形式存储数据的,所以他插入删除比较慢,查询比较快。

二.Set接口的两个实现类HashSet和TreeSet

HashSet是无顺序不重复的集合,里面允许存放null

TreeSet是有序不重复的集合,里面不允许存放null(存放的时候不报错,运行时报空指针)

如下:


我们存入的顺序是badc,但是输出的顺序是abcd

三.Map的实现类HashMap,TreeMap

HashMap最多允许一条记录的键为null,允许多条记录的值为null。他不支持线程的同步,即同一时刻可以有多个线程写HashMap。

TreeMap默认按照他们的键升序排序。


输出的结果为:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值