`
- 浏览:
68777 次
- 性别:
- 来自:
北京
-
通常,在程序运行之前是不知道所需对象的类型及数量的,为解决这个问题,需要在任意时刻任意位置创建不同类型的对象,java提供了一套完整的容器类来解决这个问题。
1、Java的容器类可以通过下表展示,容器不能持有基本类型。
Collection(基本接口):一个独立元素的序列
|-List(接口):按照插入的顺序保存对象
| |-ArrayList:优点:随机访问快,但是插入和删除慢
| |-LinkedList:访问相对慢,插入删除快
| |-Vector:和数组类似,能扩大和缩小,但是只能存放对象类实例(同步的,用的比较少)
| | |-Stack:先进后出
|-Queue:先进先出的容器,用来将对象从程序的有个区域传到另一个区域
|-Set:元素不能重复,最常用的是测试归属性
| |-HashSet:随机访问最快
| |-TreeSet:存贮在红黑树中,有序
Map:一组成对的“键值对”,类似字典功能
|-HashMap:提供最快的查找
||-LinkedHashMap:保持元素的插入顺序,通过散列提供了快速访问能力
|-TreeMap:保持“键”处于排序状态
2、容器的打印
对于数组必须使用Arrays.toString()产生可打印的表示。但是,打印容器无需任何帮助,可以直接使用print(容器对象)。这对程序的测试非常便利,尤其是Map的测试。
3、ArrayList是最常用的容器类型,
ArrayList的常用方法:
http://www.csl.mtu.edu/javadoc/api/java/util/ArrayList.html
boolean add(E e)添加元素
void add(int index, E element) 指定位置添加元素
boolean addAll(Collection<? extends E> c) 添加一组元素,只能接受另一个Collection对象
boolean addAll(int index, Collection<? extends E> c) 同上,只是在指定位置添加一组元素
void clear() 清空所有元素
Object clone() 返回当前list的浅表复制(之前说过浅表复制)
boolean contains(Object o) 测试归属性
void ensureCapacity(int minCapacity) 增加List的容量,保证最少容纳指定数量的元素
E get(int index) 返回指定位置的元素
int indexOf(Object o) 返回指定元素在List中的位置,没有返回-1;
boolean isEmpty() 测试是否为空
int lastIndexOf(Object o) 返回指定元素最后的索引位置
E remove(int index) 移出指定位置元素
boolean remove(Object o) 移出List第一个出现指定元素的元素
protected void removeRange(int fromIndex, int toIndex) 移出一段索引位置的元素
E set(int index, E element) 在指定位置添加元素,如果该位置已有元素,替换该元素
int size() 返回List的长度
Object[] toArray() 返回含有列表元素的数组
void trimToSize() 将列表的容量设置为当前列表的长度
继承的方法:
containsAll:测试归属性
removeAll:移出所有元素
retainAll:求合集。
4、迭代器Iterator只能单向移动,它的作用是遍历并选择序列中的对象,而不用管序列的类型,所有的Collection都可以生成迭代器。
5、Map和Collection之间的唯一重叠就是Map可以使用entrySet()和values()方法产生Collection。
这里推荐一个将java集合类的博文:
http://www.importnew.com/13801.html
http://www.javacodegeeks.com/2013/02/40-java-collections-interview-questions-and-answers.html#java-collections-framework
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在这个学习笔记中,主要讨论了Java中的线程同步机制,包括volatile关键字、synchronized以及Lock接口,特别是ReentrantLock的使用。 首先,对于线程1和线程2的疑惑,调试(debug)模式并不能改变线程的执行顺序。...
ValueStack是一个对象栈,它持有ActionContext上下文中的所有对象,包括Action实例、ActionForm、Session、Request等。OGNL通过ValueStack进行数据查找和操作,简化了视图层的数据绑定。 **五、Tags** Struts2提供...
【Java并发学习笔记(二)——Synchronized关键字与ReentrantLock同步锁】 在Java多线程编程中,确保线程安全是非常重要的。Synchronized关键字和ReentrantLock是两种常见的同步机制,它们都用于保证线程的原子性、...
### Java编程思想笔记知识点概述 #### 第 1 章 对象导论 在这一章节中,主要介绍...以上内容概括了《Java编程思想笔记》中的核心知识点,涵盖了Java语言的基础到高级特性,适合初学者和有一定经验的开发者参考学习。
《Spring5学习笔记详解》 在当今的Java开发领域,Spring框架无疑是最为广泛使用的轻量级框架之一,尤其在Spring5版本发布后,其功能更加强大且易用。本篇文章将根据提供的文件名,深入探讨Spring5的核心概念、特性...
本篇笔记主要关注并发编程中的一个关键概念——`synchronized`关键字,以及它的锁机制。 `synchronized`是Java中用于实现线程同步的关键字,它能确保同一时刻只有一个线程可以执行特定代码块,从而避免数据不一致性...