列式出 List / Map / Collections
来源:互联网 发布:电脑服装设计软件 编辑:程序博客网 时间:2024/06/05 04:15
Collection是java最基本的接口,一个Collection代表一组Object。JDK不直接提供Collection的接口,而是提供继承自Collection的子接口 如List、Set。
有些Collection支持排序,有些不支持;有些可以允许元素相同,有些则不允许。
不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
由Collection接口派生的两个接口是List和Set。
2.1 List接口
List是有序的Collection,允许有相同元素。 实现List接口的常用类有LinkedList、ArrayList、Vector和Stack。 2.1.1 LinkedList类 LinkedList实现了List接口,允许null元素。LinkedList提供额外的get、remove、insert方法在LinkedList的首部和尾部,这些操作可以使LinkedList可被用作堆栈、队列或双向队列。 无同步、多线程访问需要自己同步。一种解决方法是在创建List时构造一个同步的List:List list = Collections.synchronizedList(new LinkedList(...)); 2.1.2 ArrayList类 ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。 2.1.3 Vector类 Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和 ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使 用,另一个线程改变了 Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出 ConcurrentModificationException,因此必须捕获该异常。 2.1.3.1Stack 类
Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop 方法,还有peek方法得到栈顶的元素,empty方法测试堆栈 是否为空,search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。
2.1.4Set接口
Set是一种不包含重复的元素的Collection,Set最多有一个null元素。很明显,Set的构造函数有一个约束条件,传入的Collection参数不能包含重复的元素。
请注意:必须小心操作可变对象(Mutable Object)。如果一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true将导致一些问题。
3、Map接口
Map没有继承Collection接口。一个Map中不能包含相同的key。
Map.Entry 接口
Map 的 entrySet() 方法返回一个实现Map.Entry 接口的对象集合。集合中每个对象都是底层 Map 中一个特定的键-值对。
通过这个集合迭代,您可以获得每一条目的键或值并对值进行更改。但是,如果底层 Map 在Map.Entry 接口的setValue() 方法外部被修改,此 条目集就会变得无效,并导致迭代器行 为未定义。
- 列式出 List / Map / Collections
- Collections排序List<Map>
- List / Map / Collections方法
- List / Map / Collections
- List / Map / Collections
- List / Map / Collections方法
- List / Map / Collections方法
- List Map Collections
- List / Map / Collections方法
- List / Map / Collections
- List / Map / Collections
- List / Map / Collections方法收集
- java collections framework -----List,Set,Map总结
- Java数据结构 List Map Set Collection Collections
- Spring Collections(List,Set,Map,Properties)
- 自学列式List/Map/Collections
- List / Map / Collections 重要的方法
- Spring(6)-Spring Collections (List, Set, Map, and Properties) example
- 2017.11.7笔记
- 出现 org.apache.tomcat.xxx.ClassFormatException: Invalid byte tag in constant pool: 15 异常的原因及解决方法
- Steps to perform for Rolling Forward a Physical Standby Database using RMAN Incremental Backup. (文档
- linux 下给用户分配指定数据库 mysql
- Angular2+ 结构型指令
- 列式出 List / Map / Collections
- Java中51个关键字详解
- maven--私服的搭建(Nexus的使用)
- 18.Nginx事件循环之事件处理
- C++惯用法:奇特的递归模板模式
- 史上最简单的 samba 配置
- mysql索引
- PAT考试乙级1022(C语言实现)
- 事件(Event)