java集合类框架

这个博客总结得挺好Java - 集合框架完全解析 - 简书

Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。大概分为两种类型容器:(其中Java集合类里面最基本的接口有:)


一、Collection(集合类):代表一组对象,每一个对象都是它的子元素,存储元素集合。分为:

Set:不包含重复元素的Collection(HashSet不排序、LinkedHashset排序)

List:有顺序的collection,并且可以包含重复元素。(ArrayList数组存储元素,LinkedList链表存储元素)

Queue:队列(先进先出,用LinkedListed创建队列)(PriorityQueue:优先队列,是一个基于优先级堆的无界队列,它的元素是按照自然顺序(natural order)排序的。不是线程安全的,入队和出队的时间复杂度是O(log(n))。


二、Map:图,存储键/值对映射。可以把键(key)映射到值(value)的对象,键不能重复。

Map(HashMap无序,LinkedHashMap按插入或访问顺序 ,TreeMap 按键值排序)


三、其他

1、Vector

2、Stack(栈,继承Vector)

3、HashTable

4、CocurrentHashMap(并发,安全性)

5、CopyOnWriteArrayList(线程安全)


迭代器Iterator :迭代器(Iterator) - CSDN博客

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象。Java中的Iterator功能比较简单,并且只能单向移动:

常用方法:

 (1)iterator():要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

  (2) next():获得序列中的下一个元素。

  (3) hasNext():检查序列中是否还有元素。

  (4) remove():将迭代器新返回的元素删除。


使用iterator()方法时经常会遇到ConcurrentModificationException异常

主要原因:当调用容器的iterator()方法返回Iterator对象时,把容器中包含对象的个数赋值给了一个变量expectedModCount,在调用next()方法时会比较变量expectedModCount与容器中实际对象的个数modCount的值是否相等,若二者不相等,则会抛出ConcurrentModificationException异常,因此在使用Iterator遍历容器的过程中,如果对容器进行增加或删除操作,就会改变容器中对象的数量,从而导致抛出异常。

单线程解决办法:在遍历的过程中把需要删除的对象保存到一个集合中,等遍历结束后再调用removeAll()方法来删除,或者使用iterator.remove()方法。

多线程解决方法:

1)在JDK1.5版本引入了线程安全的容器,比如ConcurrentHashMap和CopyOnWriteArrayList等。可以使用这些线程安全的容器来代替非线程安全的容器。

2)在使用迭代器遍历容器时对容器的操作放到synchronized代码块中,但是当引用程序并发程度比较高时,这会严重影响程序的性能。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、集合与Map 接口说明 1. Collection接口Collection是最基本的集合接口,一个Collec...
    木有粗面_9602阅读 443评论 0赞 1
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,663评论 0赞 4
  • 好多人在感叹 没有情人的情人节好悲催 君不见没有家没有爱的人更惨 还有那些战火中失去一切的孩子 他们的眼神洞穿所有...
    如歌的行板紫雪阅读 348评论 0赞 3
  • 先吐槽:被论文折磨死啊简直!!!前前后后改来改去的啊啊啊啊啊啊啊啊啊啊啊啊!打印店老板估计也快给我打印烦了哈哈哈哈...
    呼_吸阅读 1,100评论 1赞 4
  • 让人紧张的地方,内心深处恐慌,不自觉的提醒,自己的安全,通常,会高于常态的敏感。
    滇岛少年阅读 337评论 0赞 0

友情链接更多精彩内容