集合之Collection

      集合中有List、Set、Queue等等接口,而Collection是这些接口的父接口。而Collection接口是继承自Iterable接口的。也就是说实现Collection接口的集合元素是可迭代。Iterable接口只有一个iterator()方法,返回在这个集合上进行迭代的迭代器。

public interface Iterable<T> {

    /**
     * Returns an iterator over a set of elements of type T.
     * 返回一个在一组T类型元素集合上进行迭代的迭代器
     * @return an Iterator.
     */
    Iterator<T> iterator();
}

 Collection接口中常用的方法:

 

int size();
contains(Object o);
<T> T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection<?> c);

 接下来简单的介绍下每个方法的用法:

add(E e)顾名思义是往集合中添加一个指定的元素,返回的是一个布尔型的变量,当此集合由于调用add()方法而发生改变的时候返回true,如果此集合不允许有重复的元素并且已包含有指定元素的时候就返回false,就是说当这个集合调用了add()方法而没有发生改变的就返回false。

public class CollectionTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Collection<String> collection=new HashSet<String>();
		System.out.println("result1:"+collection.add("one"));
		System.out.println("result2:"+collection.add("two"));
		System.out.println("result3:"+collection.add("one"));
	}
}

 结果会是:

result1:true
result2:true
result3:false                                                                                 

可以看到前两此collection集合调用add()方法都改变了该集合的结构,所以返回的是true,而当第三此调用add()方法添加一个已经存在的元素时,这个元素并没有添加进去,集合的结构并没有发生改变,因此返回false。(当然这是Set集合的性质决定的)。                        

 

 

remove(Object o)是删除集合中指定的元素,返回的也是布尔型值。当删除元素改变了集合的结构时就返回true,如果删除没有改变集合的结构就返回false。

public class CollectionTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Collection<String> collection=new ArrayList<String>();
		collection.add("one");
		collection.add("two");
		collection.add("three");
		System.out.println("result1:"+collection.remove("two"));
		System.out.println("result2:"+collection.remove("two"));

	}
}

 结果会是:

result1:true
result2:false
这是因为第一次删除时改变了集合的结构所以返回true,而第二次删除时并没有改变集合的结构因此返回false。

 

 

<T> T[] toArray(T[] a)返回包含此集合中所有元素的数组,此方法充当基于数组与基于集合之间的桥梁,对输出数组的运行时类型进行精确的控制。参数T[] a只是对转化的数组进行类型指定。

public class CollectionTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Collection<String> collection=new ArrayList<String>();
		collection.add("one");
		collection.add("two");
		collection.add("three");
		collection.add("four");
		String str[]=null;
		String s1[]=new String[]{};
		str=collection.toArray(s1);
		System.out.println("result1:"+convertToStr(str));
		String s2[]=new String[0];
		str=collection.toArray(s2);
		System.out.println("result2:"+convertToStr(str));
		str=collection.toArray(new String[0]);
		System.out.println("result3:"+convertToStr(str));

	}
	
	public static String convertToStr(String str[]){
		StringBuffer strBuffer=new StringBuffer();
		for(int i=0;i<str.length;i++){
			strBuffer.append(str[i]);
			if(i!=str.length-1){
				strBuffer.append(",");
			}
		}
		return strBuffer.toString();
	}
}

 结果是:

result1:one,two,three,four
result2:one,two,three,four
result3:one,two,three,four

说明toArray()方法只用送一个类型参数就行了,以上程序中三种参数类型都行。

 

 

 contains(Object o)用于判断该集合中是否包含指定的元素,如果包含返回true,否则返回false。

public class CollectionTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Collection<String> collection=new ArrayList<String>();
		collection.add("one");
		collection.add("two");
		collection.add("three");
		collection.add("four");
		System.out.println("result1:"+collection.contains("three"));
		System.out.println("result2:"+collection.contains("five"));
	}
}

 结果是:

 

 result1:true
result2:false

 

 在Collection接口中定义的最常用的方法大概就是这么几个。

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值