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一个匿名内部类对象来用。
- java再复习——Collection体系
- java再复习——Map体系
- 【系列】重新认识Java——容器体系(Collection)
- Java Collection复习整理
- Java集合之collection体系
- Java基础——集合(一)——集合体系、Collection集合
- 黑马程序员——java语言基础部分——集合体系之Collection、Map
- 黑马程序员——java基础——集合框架(一:单列集合(Collection体系))
- 黑马程序员——集合Collection:体系详述
- Java 集合框架 - Collection体系部分
- Collection 集合框架 体系概述 java
- Java Collection 知识体系的建立
- java.util.Collection体系源码解读<一>Collection简介
- java.util.Collection体系源码解读<二>Collection接口源码
- 黑马程序员——Java基础——集合类、Collection、List体系、集合框架LinkedList操作等
- Collection和Map(Java复习四)
- java基础复习之《异常体系》
- Java容器——Collection
- sql server misc
- JDK里的设计模式
- IIS misc
- json字符串与json对象、json序列化与反序列化
- EffectiveJava第43条
- java再复习——Collection体系
- 解析XML获取节点内容
- ASP.NET MVC一次删除多笔记录 V2.0
- minimalmodbus 安裝
- canvas基础学习
- POJ 1692 Crossed Matchings
- Kafka实战-实时日志统计流程
- 服务器端API接口安全性分析
- LNMP一键安装包状态管理命令