Collection下级接口集合以及Map详解与区别

简介

集合里的东西称为元素,由一个或多个元素构成的整体叫集合。

先看下图: 

 

由图可知:

 iterator是collection的顶级接口

collection是list ,set的顶级接口,map与list set 没有关系

上图引出以下问题:

 

iterable接口

               它是所有集合的顶级接口  实现它可以增强for循环(foreach  与简单for循环)

               同时想要实现Iterable接口的集合类必须提供一个iterable的方法,返回值为Iterable

               里面的方法为:

                                  hasNext():是否存在下一项
                                  next():获取下一项
                                  remove:移除下一项

Collection接口 

               1.属于java.util包里面的
               2.集合框架的顶级框架
               3.是Set和List的父接口 不是map的
                 里面的方法:
                                size:返回集合中的项数
                                isEmpty():判断集合中是否为空
                                contains(Object):判断集合是否包含某项
                                clear():
                                add():从集合中添加
                                remove(Object):移除某项
                                iterator():遍历集合

Collection集合remove(Object)和Iterable中的remove:

                Iterable的remove性能更加好点,同时容错方面也比Collection里面的要好

               collection是单链表结构 从集合一个一个找 才能找到需要remove的值    比较慢 

               Iterable的remove结合next方法使用 没指定 隔一个删一个 快

List接口

特点:可有重复元素,有顺序

ArrayList与linkedlist,vector都继承于list ,主要区别:

             1.ArrayList查询快 ,以连续的空间存储数据,一般我们查询都是用的ArrayList

             2.linkedlist查询慢,以链表的接口存储数据,一般session购物车用linkedlist删除修改

             3.ArrayList与vector  ,ArrayList是异步的 线程不安全,vector是同步线程安全

Set接口

特点:不可重复,对象无序

hashset,treeset,linkedhashset三者区别

             1.hashset :速度快 ,无序,有且仅有一个null值

             2.treeset:按照升序保存对象,不可重复

             3.linkedhashset:怎么进怎么出

Queue接口:

1.特点:先进先出

所谓消息队列有四个关键字:queue,message,looper,handler

message:消息

lopper:是用来封装消息循环和消息队列的一个类(一个线程只能有一个Looper,对应一个MessageQueue。 )

handler:是一个工具类,用来向消息队列中插入消息的

下图解释:

Map集合

特点:无序,以键值对的形式添加元素,键不能重复,值可以重复。键只允许有一个null值,但是值可以有多个

hashmap与Treemap,Linkedhashmap区别:

             1.在map中插入,删除hashmap是最好的选择

             2.需要有集合的排序功能用treemap

             3.按照插入的顺序存储集合用linkedlist
遍历:
             先取出保存所有键的Set,在遍历Set。
             先取出保存所有Entry的set,在遍历set。

Arrays

数组转list

              Arrays.aslist(数组)

list转数组

             list.toArray()

问题解答:

Array与ArrayList有什么区别?

                 1.Arraylist是Array的复杂版本

                存储数据类型:2.Array只能存储相同类型数据  Arraylist可存储不同类型数据

                长度可变:3.Array长度固定  Arraylist长度可变

Hashmap和hashset区别?

                 hashmap是实现map接口 存储键值对 put添加 相当于hashmap快 使用唯一键获取对象

                 hashset实现set接口 存储对象 add添加 相当于hashmap较慢

List和set和map区别?

                1.List和Set都继承collection 但map不是它的子接口

                list:重复有序 可插入多个null元素 先进先出

               set:不重复 无序 只允许一个null元素 

               map:键值对存储 键不重复值重复 无序 允许一个空键 多个空值
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值