`
鬼大来晚了
  • 浏览: 66232 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java学习笔记——持有对象

    博客分类:
  • Java
 
阅读更多
  通常,在程序运行之前是不知道所需对象的类型及数量的,为解决这个问题,需要在任意时刻任意位置创建不同类型的对象,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