JAVA的容器
来源:互联网 发布:防止js脚本注入攻击 编辑:程序博客网 时间:2024/05/22 13:13
JAVA的容器:list ,set,map
List包括:linkedlist,arraylist,vector.vector包括Stack
Set
Map包括hashtable,hashmap,WeakhashMap
Collection是最基本的集合接口,一个collection集合代表一组object. Java SDK不提供直接集成collection的类.而是直接来自collection的子接口list ,set
Collection的遍历,不论Collection的实际类型如何,它都支持一个iterator(),该方法返回一个迭代子
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
Collection派生的俩个接口list和set
List接口
List是有序的Collection,不允许有相同的元素, 和下面要提到的Set不同,List允许有相同的元素。
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个 ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。
实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
1.LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));
2.vector类
Vector非常类似ArrayList,但是Vector是同步的。以适应创建 Vector 后进行添加或移除项的操作.当一个vector在使用iterator时候,另一个vector是无法使用的.此时会抛出ConcurrentModificationException异常.
3.Stact对象堆栈,继承了vector 它通过五个操作对类 Vector 进行了扩展, 它提供了通常的 push 1 和 pop 2 操作,以及取堆栈顶点的 peek 3 方法、测试堆栈是否为空的 empty 4方法、在堆栈中查找项并确定到堆栈顶距离的 search 5方法。
Deque 接口及其实现提供了 LIFO 堆栈操作的更完整和更一致的 set,应该优先使用此 set,而非此类。例如:
Deque<Integer> stack = new ArrayDeque<Integer>();
Set接口
Set是一种不包含重复的元素的Collection,即任意的两个元素都不会相等。
Object.equals(Object)=true将导致一些问题。
Map接口
注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。
- Java 容器的概念
- JAVA的容器
- java容器的理解
- java的容器概念
- java容器的排序
- java的容器图解
- Java 容器的使用
- JAVA容器的使用
- Java的容器-笔记
- java的容器排序
- java的各类容器
- java 容器的选择
- java容器的认识
- java容器的学习
- Java的同步容器和并发容器
- java容器类的介绍
- 关于java容器的基础知识
- java 容器的学习文章
- sqlserver2000 Can't start manual transaction mode because there are cloned connections
- Tomcat配置,解决PermGen space问题
- hdu 3496
- Visio 中如何画实现接口的连线
- XMLWriter类——《PHP高级程序设计:模式、框架和测试》
- JAVA的容器
- 简单游戏内存修改器
- 最近点对
- ucGUI 使用VC模拟运行第一个程序
- 关于kinect SDK安装后找不到设备的问题解决
- XMLWriter
- Linux中命令行下查看硬件信息及系统版本
- 关于BlackBerry10 Native开发方面的一些知识
- 字符串面试考法总结