Java---25---集合框架共性方法

集合类

为什么会出现集合类

 

面向对象语言对事物的体现都是以对象的形式,所以为了方便对较多个对象的操作,就对对象进行存储,集合就是存储对象最经常使用的一种方式

 

数组和集合类同一时候容器,有何不同?

数组尽管也能够存储对象,可是长度不可变。集合的长度是可变的。数组中能够存储基本数据类型,集合仅仅能存储对象。

 

集合类的特点:

集合仅仅用于存储对象。集合长度是可变的,集合能够存储不同类型的对象。

为什么会出现这么多的容器呢?

由于每个容器对数据的存储方式都有不同

这个存储方式称之为:数据结构

 

 

共性方法:(Collection 的方法)

增、删、改、查。

方法摘要
 boolean add(E e)
          确保此 collection 包括指定的元素(可选操作)。

 boolean addAll(Collection<?

extends E> c)
          将指定 collection 中的全部元素都加入到此 collection 中(可选操作)。

 void clear()
          移除此 collection 中的全部元素(可选操作)。
 boolean contains(Object o)
          假设此 collection 包括指定的元素,则返回 true
 boolean containsAll(Collection<?> c)
          假设此 collection 包括指定 collection 中的全部元素。则返回 true

 boolean equals(Object o)
          比較此 collection 与指定对象是否相等。
 int hashCode()
          返回此 collection 的哈希码值。
 boolean isEmpty()
          假设此 collection 不包括元素,则返回 true
 Iterator<E> iterator()
          返回在此 collection 的元素上进行迭代的迭代器。

 boolean remove(Object o)
          从此 collection 中移除指定元素的单个实例,假设存在的话(可选操作)。
 boolean removeAll(Collection<?

> c)
          移除此 collection 中那些也包括在指定 collection 中的全部元素(可选操作)。

 boolean retainAll(Collection<?

> c)
          仅保留此 collection 中那些也包括在指定 collection 的元素(可选操作)。

 int size()
          返回此 collection 中的元素数。

 Object[] toArray()
          返回包括此 collection 中全部元素的数组。
<T> T[]
toArray(T[] a)
          返回包括此 collection 中全部元素的数组;返回数组的执行时类型与指定数组的执行时类型同样。

 

 

add 方法的參数类型是Object 以便于接收随意类型的对象

集合中存储的都是对象的引用(地址)



import java.util.ArrayList;

public class Main {

	public static void main(String[] args) {
		//method_1();
		method_2();
	}

	public static void method_2() {
		ArrayList al1 = new ArrayList();
		ArrayList al2 = new ArrayList();

		al1.add("abc01");
		al1.add("abc02");
		al1.add("abc03");
		al1.add("abc04");

		al2.add("abc01");
		al2.add("abc02");
		al2.add("abc05");
		al2.add("abc06");

		al1.removeAll(al2);//去除al1与al2的交集,保存在al1中

		sop(al1);
		sop(al2);
		/*
		 * 打印结果:
		 * [abc03, abc04]
		 * 
		 * [abc01, abc02, abc05, abc06]
		 * 
		 * */
	}

	public static void method_1() {
		// 创建一个集合容器。使用Collection接口的子类ArrayList
		ArrayList a1 = new ArrayList();
		// 加入元素
		a1.add("abc01");
		a1.add("abc02");
		a1.add("abc03");
		a1.add("abc04");

		// 获取个数 集合长度
		System.out.println(a1.size());
		// 打印集合
		System.out.println(a1);
		// 删除元素
		a1.remove("abc03");
		System.out.println(a1);
		/*
		 * 打印结果 4 [abc01, abc02, abc03, abc04] [abc01, abc02, abc04]
		 */
		// a1.clear();//清空集合

		// 推断某一元素是否在集合中
		System.out.println(a1.contains("abc01"));
		// 推断集合是否为空
		System.out.println(a1.isEmpty());

	}

	public static void sop(Object obj) {
		System.out.println(obj);
	}
}


===============================迭代器=============================

迭代器事实上就是集合用来取出元素的方式。

 

取出元素并能够对元素进行操作。



方法摘要
 boolean hasNext()
          假设仍有元素能够迭代。则返回 true

 E next()
          返回迭代的下一个元素。

 void remove()
          从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。



public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList al1 = new ArrayList();

		al1.add("abc01");
		al1.add("abc02");
		al1.add("abc03");
		al1.add("abc04");
//		Iterator it = al1.iterator();//获取迭代器,用于取出集合中的元素
//		
//		//sop(it.next());//返回迭代的下一个元素。
//		
//		sop(it.hasNext());//假设仍有元素能够迭代。则返回 true
//		while (it.hasNext())
//		{
//			sop(it.next());
//		}
		for (Iterator it = al1.iterator();it.hasNext();){
			sop(it.next());
		}
		
	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
}


posted @ 2016-01-23 08:51  phlsheji  阅读(249)  评论(0编辑  收藏  举报