黑马程序员-集合

           首先我们需要明白什么是集合,集合类似于数组,是用来存放对象的聚集,集合对象中存在的是一组对象,换句话说集合中储存的是对象。

  集合分为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集合

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值