JAVA----集合Collection

版权声明:转载请标明出处~~谢谢! https://blog.csdn.net/zoe_ranxiaosu/article/details/81986527

集合

集合框架图

 集合概念:

     用于存储多个对象的单一对象(容器),存储的数据叫元素,元素都是引用类型。

集合框架:

     用于模拟现实生活中的存储容器,因此集合类型不单单是一种。有很多类型,设计成各种存储的数据结构。这些类型统称为集合框架。 

注意:元素必须是引用数据类型的数据,不能是基本数据类型的数据。

           容器内存储的都是对象的地址。

泛型机制

       JDK1.5新特性:在对元素进行操作时,比如调用元素的方法等,我们必须知道元素的类型,因此在编程中增加了大量代码,来进行强制转换,增加了开发难度。因此1.5开始支持了一个新特性,叫泛型机制。用来规定容器中存储的元素的类型。此机制可以在编译期间就进行判断元素的类型。 

集合与数组的区别


       数组:可以存储基本数据类型也可以存储引用数据类型
       集合:只能存储引用数据类型 

 Collection接口

是集合框架的顶级父接口,用来定义常用的方法。子类需要实现相应的方法逻辑.

常用方法

      boolean add(E e):
                          将对象e添加到容器中
      int size()
                          返回集合元素的个数
      boolean addAll(Collection c)
                          将集合c里的元素添加到此集合中
      void clear()
                          清空集合元素
      boolean contains(Object obj)
                          用于判断集合中是否存在与obj相同的元素
      boolean containsAll(Collection c)
                          用于判断此集合中是否包含集合c中的所有元素
      boolean isEmpty()
                          用于判读集合元素是否为空 
      boolean remove(Object o) 
                          用于移除集合中的某一元素
      boolean removeAll(Collection c)
                          用于移除此集合中与c中共有元素
      boolean retainAll(Collection c)
                          用于保留此集合中与c中共有元素 

public class TestCollection03 {
	public static void main(String[] args) {
		/* 集合c1中存储java,c,c++,python */
		/* 集合c2中存储c++,python,php,c# */
		/* 从c1中移除c2中的共有元素 */
		Collection<String> c1 = new ArrayList<String>();
		c1.add("java");
		c1.add("c");
		c1.add("c++");
		c1.add("python");
		System.out.println(c1);
		Collection<String> c2 = new ArrayList<String>();
		c2.add("c++");
		c2.add("python");
		c2.add("php");
		c2.add("c#");
		// c1.removeAll(c2);
		// System.out.println(c1);

		/* 保留c1中和c2中的共有元素 */
		c1.retainAll(c2);
		System.out.println(c1);

		/*
		 * 想使用数组元素时,必须强制转换 相对来说麻烦
		 */
		Object[] obj = c2.toArray();
		/*
		 * 为了避免强制转换这一步操作 调用重载方法,传一个元素类型的数组对象即可
		 */

		String[] arr = c2.toArray(new String[0]);
		System.out.println(arr[1].length());
	}

}

猜你喜欢

转载自blog.csdn.net/zoe_ranxiaosu/article/details/81986527