百度推广做网站什么价位网吧网络维护公司
news/
2025/9/27 20:08:56/
文章来源:
百度推广做网站什么价位,网吧网络维护公司,辽宁省建设工程信息网招标,为企业设计一个网站Java Collections框架
Java Collections框架中包含了大量的集合接口以及这些接口的实现类和操作它们的方法#xff0c;具体包含了Set(集合#xff09;、List(列表)、Map(键值对)、Queue(队列)、Stack(栈)等#xff0c;其中List、Set、Queue、Stack都继承了Collection接口。…Java Collections框架
Java Collections框架中包含了大量的集合接口以及这些接口的实现类和操作它们的方法具体包含了Set(集合、List(列表)、Map(键值对)、Queue(队列)、Stack(栈)等其中List、Set、Queue、Stack都继承了Collection接口。我理解的容器就是类似于放不同奶茶的杯子的统称不同的实现类对应了盛放不同奶茶需要不同的杯子而我们不需要知道杯子是怎么构造的我们只需要知道什么奶茶需要什么杯子即可而迭代器Iterator相当于喝奶茶的吸管拿到吸管我们不用了解奶茶的构造仅仅用吸管喝美味的奶茶就好。下面是Collection框架类图 最为主要的是三类
Set集合要求集合中的元素不相同通过定义equals()函数来确保对对象的唯一性。List有序的Collection按照对象进入的顺序保存数据可以通过索引来读取数据。Map键值对要求Key具有唯一性。其中HashMap通过散列表实现LinkedHashMap采用散列表来维持内部的顺序TreeMap是基于红黑树的数据结构来实现。
Iterator迭代器
用于遍历以及选择序列中的对象。就像上面所说的我们就像使用吸管一样不必了解容器内部构造就可以使用容器实现的迭代器遍历容器的元素。包含最为主要的三个方法
利用容器对象的Iterator()方法返回一个Iterator使用next()返回第一个元素。hasNext() 判断是否还有元素。remove()删除迭代器返回的元素。
另外在使用Iterator()遍历容器时常常出现ConcurrentModificationException异常主要是在使用迭代器遍历容器时进行了容器的增加或者删除操作因为当调用容器的Iterator() 方法时会把容器包含的对象个数赋值给Iterator对象中的expectedModCount在调用next() 方法时会比较当前容器元素个数和expectedModCount如果不相等抛出ConcurrentModificationException异常。解决的方法有
在使用Iterator遍历时如果删除或者增加的一个元素后即刻使用break跳出循环。使用线程安全的容器ConcurrentHashMap和CopyOnWriteArrayList。在遍历时使用一个容器将要删除的对象保存然后遍历结束后使用removeAll()。使用Iterator自带的remove()方法删除把遍历容器时对容器的操作放到synchronized代码中。
同类容器之间的区别
ArrayList、Vector、LinkedList区别
三者都是可伸缩的数组可以根据用户的需求动态的变换数组的长度很好的解决了固定长度数组构造时需要指定固定的长度的问题。另外它们有以下区别
ArrayList和Vector都是利用Object[] array实现的都是顺序存储的支持用下标访问元素。当当前容器容量不足时动态扩充容量Vector采用2倍扩容而ArrayList采用1.5倍扩容ArrayList源码详解其中前者可以指定扩容因子后者固定。另一个最大的区别Vector是线程安全的后者是线程不安全的。LinkedList是利用双向列表实现的对数据的索引需要从头开始遍历效率较低但是插入数据较快。
HashMap、HashTable、TreeMap以及WeakHashMap区别
对比HashMap和HashTable前者是后者的轻量级实现即是非线程安全实现HashMap允许空键值存在而HashTable不允许HashMap去掉HashTable中contains方法改为containsKey以及containsValue另外前者是Map的一个实现而后者是Dictionary的一个实现Hashtable使用EnumerationHashMap使用Iterator对于扩容方式HashTable默认大小为11扩容因子为old*21HashMap默认大小是16扩容因子是2的指数。TreeMap实现了SortedMap接口能够按照指定的顺序对键值排序因此取出的的键值是排完序的。WeakHashMap的key采用一种弱引用的方式只要key不被外部引用它就可以被gc回收而HashMap则是key被删除。
Collections工具类
针对Collection的一个包装类提供一系列的静态方法来处理相应的容器服务于Collection框架中的各种类。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919877.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!