java再复习——Collection体系

来源:互联网 发布:led屏幕软件下载 编辑:程序博客网 时间:2024/06/05 06:55

Collection体系作为开发中最常用的东西,值得再次梳理一下。

体系图:


Collection作为集合的顶层接口,它也有顶层接口,就是Iterable,为了描述所有集合必须有迭代器来进行遍历与取值的共性。

Collection中最常用的两类实现接口为: List与Set.

为什么分为两类?因为所存储数据时的数据结构不一样

List: 这一类的容器,数据是有序的,并且可以重复,有索引。

Set: 这一类的容器,数据是无序的,不可以重复,无索引。


List和Set作为Collection的实现接口,他们的共同点为都有增删和取得迭代器的方法。

List体系的特有方法是: 所有与索引有关的方法都是List体系特有的,例如 list.set(2,"哈哈") ,将索引为2的数据改为“哈哈”,或者list.get(2);


关于Collection体系的迭代器:每一个具体实现子类的迭代器作为内部类存在与子类中,并提供hasNext()判断有无数据,next()取得数据,remove()删除数据。而且每个子类自己的Iterator实现是不一样的,因为数据结果不一样,所以Iterator的实现细节肯定是不一样的。而且在迭代器遍历的时候,不可以使用子类的具体API来对集合进行增删改等操作,否则会报java.util.ConcurrentModificationException。

ListIterator : 作为List体系特有的Iteraotr,他可以在迭代过程中对List进行增删改。


List各个常用具体实现类的区别:

ArrayList: 底层是数组实现,内存连续,所以查找快(因为有索引),但是增删慢(因为要移动元素)

LinkedList: 底层是链表实现,内存不联系,查找慢(因为得一个接着下一个的找),增删快(直接改变元素之间的链接就好了)

Vector: 与ArrayList一样的实现,只不过是线程安全的,但是效率很低,已被弃用。


LinkedList特有方法: 

list.getFirst();//得到第一个元素,没有会抛异常list.getLast(); //得到最后一个元素,没有会抛异常list.removeLast(); //删除最后一个元素,没有会抛异常list.removeFirst();//删除第一个元素,没有会抛异常list.peekFirst();//得到第一个元素,没有返回nulllist.peekLast();//得到最后一个元素,没有返回nulllist.pollFirst();//删除第一个元素,没有返回nulllist.pollLast();//删除最后一个元素,没有返回null

Set各个常用具体实现类的区别:

HashSet : 底层是哈希表实现的,保证数据唯一性是根据先比较hashCode()方法,如果不一样的话则认为不一样,如果一样的话再比较equasl()方法,如果一样的话认为一样,如果不一样的话认为不一样。值得注意的是,List中contains()方法来判断是否是同一个对象,只比较equals()方法。

TreeSet : 底层是二叉树实现的,它不是完全的无序,是它自己有直接的排序规则,就是二叉树的排序规则,而且进入到这个集合的元素必须具有排序性,也就是如果对象没有实现过comparable接口的对象必须实现,否则会报错。还有一种排序方法就是,再new TreeSet的时候传入Comparator比较器,来排序,如果两者都存在,以Comparator比较器优先。这是Comparable和Comparator的区别,一个是给类实现的接口,一个是独立使用的接口,一般会new一个匿名内部类对象来用。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 守望先锋服务器发生意外错误怎么办 在先锋社保缺一年上学怎么办 lol更新后反应很慢怎么办 电脑跳舞毯不正常电脑游戏怎么办 PS中缺失的字体怎么办 黑板墙不想要了怎么办 淘宝代练打坏了怎么办 绝地求生与ipad不兼容怎么办 小米手机玩绝地求生卡怎么办 绝地求生服务器目前非常繁忙怎么办 玩绝地求生手机发烫怎么办 绝地求生刺激战场延迟高怎么办 怀孕八个半月打喷嚏头疼怎么办 20岁打喷嚏漏尿怎么办 鼻炎犯了不停打喷嚏怎么办 鼻炎犯了不停打喷嚏流鼻涕怎么办 感冒鼻痒怎么办小窍门 腰扭了屁股也疼怎么办 小三把房子过户怎么办 小三把房子卖了怎么办 打印机ip地址变了怎么办 电脑ip地址错误不能上网怎么办 修改了注册表电脑无法启动怎么办 香水喷到衣服上有印怎么办 家里一股猫的味道怎么办 干菊花里面有虫怎么办 安装时显示程序已关闭怎么办 电脑一直重启开不了机怎么办 应用安装在sd卡打不开怎么办 安装ps打不开安装包怎么办 安装好的软件打不开怎么办? win10系统语言修改不了怎么办 一个月婴儿吵夜怎么办 玩游戏一直闪退怎么办 钱站一直闪退怎么办 win7重装连不上网怎么办 笔记本屏幕横过来了怎么办 3D贴图丢了怎么办 百度文库安装后手机打不开怎么办 win7系统不带usb驱动怎么办 手机网页上的pdf打不开怎么办