参考:http://skyuck.iteye.com/blog/526358
一个Collection代表一组object,不论Collection实际类型如何,他都支持一个方法iterator(),通过这个方法可以逐一访问这个集合中的每一个元素(element)。
使用如下:Iterator it = Collection.Iterator();
while(it.hasNext()){ //判断是否还有数据
Object object = it.next(); //读出数据
}
由Collection接口派生的两个接口是List和Set.List是有序的collection,可以通过索引(与数组类似)来访问集合中的每一个元素。实现了List的常用类有LinkedList,ArrayList,Vector(子类Stack)。Set是不包含重复元素的Collection,至多有一个null,常用类有HashSet,LinkedSet,TreeSet.
Stack:Stack继承自Vector,实现一个后进先出的堆栈。
Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop 方法,还有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。
ArrayList与Vector主要从二方面来说.
同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
如果涉及到堆栈,队列等操作,应该考虑用Vector,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList
ArrayList方法摘要
boolean add(E e)
将指定的元素添加到此列表的尾部。
void add(int index, E element)
将指定的元素插入此列表中的指定位置。
void clear()
移除此列表中的所有元素。
E get(int index)
返回此列表中指定位置上的元素。
int indexOf(Object o)
返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
boolean isEmpty()
如果此列表中没有元素,则返回 true
int lastIndexOf(Object o)
返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
E remove(int index)
移除此列表中指定位置上的元素。
boolean remove(Object o)
移除此列表中首次出现的指定元素(如果存在)。
E set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。
int size()
返回此列表中的元素数。
void trimToSize()
将此 ArrayList 实例的容量调整为列表的当前大小。
Map接口:
Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。
Map的内容可以被当作一组key集合,一组value集合,一组key-value映射。
void clear()
从此映射中移除所有映射关系。
Object clone()
返回此 HashMap 实例的浅表副本:并不复制键和值本身。
boolean containsKey(Object key)
如果此映射包含对于指定键的映射关系,则返回 true。
boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。
Set<Map.Entry<K,V>> entrySet()
返回此映射所包含的映射关系的 Set 视图。
V get(Object key)
返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
boolean isEmpty()
如果此映射不包含键-值映射关系,则返回 true。
Set<K> keySet()
返回此映射中所包含的键的 Set 视图。
Collection<V> values()
返回此映射所包含的值的 Collection 视图。
V put(K key, V value)
在此映射中关联指定值与指定键。
V remove(Object key)
从此映射中移除指定键的映射关系(如果存在)。
int size()
返回此映射中的键-值映射关系数。
相关推荐
Collection, List, Set 和 Map 用法和区别 Collection 是 Java 中的一种对象集合,提供了许多有用的方法来操作集合元素,例如添加、删除、遍历等。Collection 是一个接口,下面有两个子接口:List 和 Set。 List ...
- `values()`:返回包含Map中所有值的Collection视图。 8. **效率与迭代**: `putAll()`方法虽然可以批量插入键值对,但如果Map没有预先调整大小,可能会在添加大量元素时不如逐个`put()`高效。不过,`putAll()`...
Java 集合框架中 List、Set、Map 的用法和区别 Java 集合框架(Java Collections Framework)是 Java 语言中的一个重要组件,提供了一些基本的数据结构和算法来操作和存储数据。其中,List、Set、Map 是三个非常...
本文将详细介绍Java中Map集合的用法。 **1. Map接口概述** Map接口位于`java.util`包下,它定义了一些基本的操作方法,如put、get、remove等。Map集合中常用的实现类有HashMap、TreeMap、LinkedHashMap等,它们各自...
Map提供了三个视图:entrySet()返回所有键值对的Set,keySet()返回所有键的Set,values()返回所有值的Collection。遍历这些视图可以方便地处理Map中的元素。 八、Map实现的选择 根据需求,可以选择不同类型的Map...
本篇文章将详细介绍Map的基本用法和关键特性。 1. **声明Map对象** 创建Map对象时,通常会指定一个具体的实现类,如HashMap。例如: ```java Map, String> map = new HashMap(); ``` 这里创建了一个HashMap...
MyBatis 中的 foreach Collection 用法小结(三种) MyBatis 中的 foreach 语句是用来迭代一个集合,以便在 SQL 语句中生成相应的条件语句。foreach 语句的主要用途是在构建 in 条件中,例如 select * from blog ...
Java集合框架是Java编程语言中的一个核心组件,...理解并熟练掌握Collection、List、Map和Set的特性和用法,能显著提高代码的效率和可维护性。在实际开发中,应根据需求选择合适的集合类,并利用排序功能优化数据处理。
本文将深入探讨Collection、List、Set、Map这四大接口以及它们的实现类,帮助你全面理解这些概念及其在实际开发中的应用。 **Collection接口** Collection是所有单值容器的顶级接口,它定义了所有集合的基本操作,...
10. **`keySet()`和`values()`方法**:分别返回包含所有键的`Set`和所有值的`Collection`,便于进行键或值的相关操作。 11. **不同类型的Map实现**: - `HashMap`:默认无序,允许空键和值,查找速度快,基于哈希...
本文将深入探讨Java集合框架的四大核心组件:`Collection`、`List`、`Map`和`Set`,以及它们的排序方法。 ### 1. 集合框架概述 #### 1.1.1 容器简介 在Java中,容器(Containers)是用来存储和管理对象的结构。...
- 可能还包括文档,解释每个宏的功能和用法。 综上所述,`Laravel开发-collection-macros`这个主题旨在通过自定义的Collection宏来扩展Laravel的集合操作能力,以适应项目需求。通过学习和使用这些宏,开发者可以...
- **视图集合**:`Map`提供了三种视图集合,即键集(key set)、值集(value collection)和映射关系集(entry set)。 2. **常用Map实现类** - **Hashtable**:这是最早的`Map`实现,线程安全,不允许`null`键和...
在Java编程语言中,集合框架是处理对象组的重要工具,其中Collection和Map接口是核心组成部分。本篇文章将详细探讨这两个接口及其子类在Java 8中的特性与用法。 首先,我们来了解一下Collection接口。Collection是...
Map集合与其他两种集合不同,它不是继承自Collection接口,而是独立的一类,用于存储键值对。Map接口提供了将特定键关联到特定值的功能。常见的Map实现有HashMap、TreeMap和LinkedHashMap。HashMap同样基于哈希,而...