首先我们需要明白什么是集合,集合类似于数组,是用来存放对象的聚集,集合对象中存在的是一组对象,换句话说集合中储存的是对象。
集合分为collection(set,list),set集合的特点不能重复,不可以按照顺序排列元素,而list集合却和他恰恰相反,还有Map集合。
那么好了,我们来具体的看一下每一个集合的特点吧:
1.Collection集合
Collection 接口用于表示任何对象或元素组。想要尽可能以常规方式
处理一组元素时,就使用这一接口。Collection 在前面的大图也可以看出,它是List和Set 的父类。并且它本身也是一个接口。它定义了作为集合所应该拥有的一些方法。如下 :
注意:
集合必须只有对象,集合中的元素不能是基本数据类型。 Collection接口支持如添加和除去等基本操作。设法除去一个元素时,如果这个元素存在,除去的仅仅是集合中此元 素的一个实例。
boolean add(Object element) boolean remove(Object element) Collection 接口还支持查询操作: int size()
boolean isEmpty()
boolean contains(Object element) Iterator iterator()
组操作 :Collection 接口支持的其它操作,要么是作用于元素组的任务,要么是同时作用于整个集合的任务。
boolean containsAll(Collection collection) boolean addAll(Collection collection)
void clear()
void removeAll(Collection collection) void retainAll(Collection collection)
containsAll() 方法允许您查找当前集合是否包含了另一个集合的所有元素,即另一个集合是否是当前集合的子集。其余方法是可选的,因为特定的集合可能不支持集合更改。 addAll() 方法确保另一个集合中的所有元素都被添加到当前的集合中,通常称为并。 clear() 方法从当前集合中除去所有元素。 removeAll() 方法类似于 clear() ,但只除去了元 素的一个子集。 retainAll() 方法类似于 removeAll() 方法,不过可能感到它所做的与前面正好相反:它从当前集合中除去不属于另一个集合的元素,即交。
举一个例子:
package Collections;
import java.util.ArrayList;
import java.util.Collection;
/**
* List集合,主要是分为三种 1.arrayList linkedList vector
* @author Administrator
*
*/
public class List {
public static void main(String[] args) {
Collection cl = new ArrayList();//创建一个集合对象
//添加对象到collection中,如果没有进行泛型的定义,那么可以添加任何的对象
cl.add("001");
cl.add("002");
cl.add("003");
cl.add(2);//其实是添加了一个对象 int i = 2;
//集合的大小
System.out.println("集合的大小是:"+cl.size());
//集合的内容
System.out.println("集合的内容:" +cl);//如果是这样,那么就将整个数组进行打印出来
//从集合中删除某一个特定的元素
cl.remove("003");//remove里面的值是cl里面的值
System.out.println("删除后的集合内容:" +cl);
//看集合是不是存在某一个数据
System.out.println(cl.contains("002"));
//将一个集合完全复制给另一个数组
ArrayList al = new ArrayList();
al.addAll(cl);
//打印这个数组
System.out.println(al);
//清空数组
cl.clear();
System.out.println(cl);
//将集合al转变成一个数组,但是前提是他们的对象格式是一样的,这里我们有String类型的,也有int类型的,
//所以我们选择Object类型的
Object [] ob = al.toArray();
//遍历一下数组
for (int i = 0; i < ob.length; i++) {
System.out.println(ob[i]);
}
}
}
确是创建该接口的一个实现类。做为集合的接口,它定义了所有属于集合的类所都应该具有的一些方法。
而ArrayList (列表)类是集合类的一种实现方式。
这里需要一提的是,因为Collection的实现基础是数组,所以有转换为Object数组的方法:
Object[] toArray()
Object[] toArray(Object[] a)
其中第二个方法Object[] toArray(Object[] a) 的参数 a 应该是集合中所有存放的对象的类的父类。
这时候我们不得不说的一个知识点是:Iterator
Java的Collection的Iterator 能够用来,:
1) 使用方法 iterator() 要求容器返回一个Iterator .第一次调
用Iterator 的next() 方法时,它返回集合序列的第一个元素。
2) 使用next() 获得集合序列的中的下一个元素。
3) 使用hasNext()检查序列中是否元素。
4) 使用remove()将迭代器新返回的元素删除。
package Collections;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
public class ArrayLists {
public static void main(String[] args) {
//arrayList和LinkedList都可以get
LinkedList<String> arrays = new LinkedList<String>();
arrays.add("001");
arrays.add("002");
arrays.add("003");
System.out.println(arrays.get(2));
//使用迭代器进行遍历
Iterator<String> ss = arrays.iterator();
while(ss.hasNext()){
String hh = ss.next();
System.out.println(hh);
}
if(arrays.isEmpty()){
System.out.println("arrays is isEmpty");
}else{
//开始循环删除
Iterator<String> ss1 = arrays.iterator();
while(ss1.hasNext()){
String hh = ss1.next();
ss1.remove();
}
}
Iterator<String> ss1 = arrays.iterator();
if(!ss.hasNext()){
String hh = ss1.next();
System.out.println("+++++"+hh);
}else{
System.out.println("是空的");
}
}
}
2.List集合有一个特点就是当我们不知道前面数据的时候,我们可以用LIst集合来进行下面的储存,因为他可以自动的添加,就是所谓的add方法
List集合中包括arrayList和LinkedList,那么我们什么时候选择哪个集合方式呢?可见下表
3.set集合包括hashset,treeset等
具体可见下表:
3.Map集合