一、集合的由来
* 集合的由来:
* 我们学习的是面向兑现语言。而面向对象语言对事物的描述又是通过对象体现的。* 为了方便对多个对象进行操作,我们必须把这个对象进行存储。
* 而要存储多个对象就不能是一个基本的变量,而应该是一个容器类型的变量。
* 在我们以前所学的知识里,有哪些是容器类型的呢?数组和StringBuffer
* 但是stringbuffer的结果是一个字符创,不一定满足我们的要求,所有我们选择
* 数组这就是对象数组。而对象数组又不能适应变化的需求,因为数组的长度是固定的。
* 这个时候为了适应变化的需求,Java就提供了集合类供我们使用。
二、collection接口
*collect的概述
* 一些collect不允许有重复的元素,一些collect是有序,而另一些是无序的
*collect接口的成员方法
* collection层次结构的跟接口。collect表示一组对象,这些对象也称为collect的元素。一些collection允许有重复的元素
* 一些collect不允许有重复的元素,一些collect是有序,而另一些是无序的
*collect的功能
* 1.添加功能
* boolean add(E e):添加一个元素
* boolean addAll(Collection<? extends E> c):添加一个容器的元素
* 2.删除功能
* boolean remove(Object o):移除一个元素
* boolean removeAll(Collection<?> c):移除一个集合的元素
* void clear():移除所有元素
* 3.判断功能
* boolean contains(Object o)
* boolean containsAll(Collection<?> c)
* boolean isEmpty()
* 4.获取功能
* Iterator<E> iterator()
* 5.长度功能
* int size():元素的个数
* 6.交集功能
* boolean retainAll(Collection<?> c):两个集合都有的元素
* 7.把集合转化为数组
* Object[] toArray()
* <T> T[] toArray(T[] a)
package cn.itcast_01;
import java.util.ArrayList;
import java.util.Collection;
/**
* 集合的由来:
* 我们学习的是面向兑现语言。而面向对象语言对事物的描述又是通过对象体现的。
* 为了方便对多个对象进行操作,我们必须把这个对象进行存储。
* 而要存储多个对象就不能是一个基本的变量,而应该是一个容器类型的变量。
* 在我们以前所学的知识里,有哪些是容器类型的呢?数组和StringBuffer
* 但是stringbuffer的结果是一个字符创,不一定满足我们的要求,所有我们选择
* 数组这就是对象数组。而对象数组又不能适应变化的需求,因为数组的长度是固定的。
* 这个时候为了适应变化的需求,Java就提供了集合类供我们使用。
*
*数组和集合的区别:
* A.长度区别。 数组的长度是固定的,集合的长度是可变的。
* B.内容不同。数组存储的是同一类型的元素,集合可以存储不同类型的元素
* C.元素的数据类型问题。数组可以存储基本数据类型,也可以存储引用数据类型
* 集合只能存储引用数据类型。
*collect的概述
* collection层次结构的跟接口。collect表示一组对象,这些对象也称为collect的元素。一些collection允许有重复的元素
* 一些collect不允许有重复的元素,一些collect是有序,而另一些是无序的
*
*collect的功能
* 1.添加功能
* boolean add(E e):添加一个元素
* boolean addAll(Collection<? extends E> c):添加一个容器的元素
* 2.删除功能
* boolean remove(Object o):移除一个元素
* boolean removeAll(Collection<?> c):移除一个集合的元素
* void clear():移除所有元素
* 3.判断功能
* boolean contains(Object o)
* boolean containsAll(Collection<?> c)
* boolean isEmpty()
* 4.获取功能
* Iterator<E> iterator()
* 5.长度功能
* int size():元素的个数
* 6.交集功能
* boolean retainAll(Collection<?> c):两个集合都有的元素
* 7.把集合转化为数组
* Object[] toArray()
* <T> T[] toArray(T[] a)
*
*
* @author jack
*
*/
public class CollectionDemo_01 {
public static void main(String[] args) {
//测试不带all的
//创建集合对象
//Collection c=new Collection() //错误,接口不能实例化
Collection c=new ArrayList();
System.out.println("0:"+c);
//boolean add(E e):添加一个元素
//System.out.println("c--add="+c.add("hello"));
c.add("张三");
c.add("李四");
c.add("王五");
System.out.println("1:"+c);
//void clear():移除所有元素
//c.clear();
//boolean remove(Object o):移除一个元素
System.out.println("remove--李四"+c.remove("李四"));
System.out.println("remove--赵六"+c.remove("赵六"));
System.out.println("contains:"+c.contains("王五"));
//boolean isEmpty() 判断集合是否为空
System.out.println("isEmpty:"+c.isEmpty());
//int size():元素的个数
System.out.println("size:"+c.size());
System.out.println(c.getClass().getName()+":"+c);
}
}
测试带All的方法
package cn.itcast_01;
import java.util.ArrayList;
import java.util.Collection;
/**
* boolean addAll(Collection<? extends E> c):添加一个集合的元素
* boolean removeAll(Collection<?> c):移除一个集合的元素
* boolean containsAll(Collection<?> c):判断集合中是否包含指定的集合元素,只有包含所有的元素才叫包含
* boolean retainAll(Collection<?> c):两个集合都有的元素
* @author jack
*
*/
public class CollectionDemo_02 {
public static void main(String[] args) {
//创建集合1
Collection c1=new ArrayList();
c1.add("abcd1");
c1.add("abcd2");
c1.add("abcd3");
c1.add("abcd4");
System.out.println("c1--0"+c1.toString());
//创建集合2
Collection c2=new ArrayList();
c2.add("abcd4");
c2.add("abcd5");
c2.add("abcd6");
c2.add("abcd7");
System.out.println("c2---0"+c2.toString());
//boolean addAll(Collection<? extends E> c):添加一个容器的元素
//System.out.println("c1.addAll(c2)"+c1.addAll(c2));
// System.out.println("c1--1"+c1.toString());
// System.out.println("c2--1"+c2.toString());
//boolean removeAll(Collection<?> c):移除一个集合的元素,注意移除的交集元素,只要有一个被移除就返回true
// System.out.println("c1.removeAll(c2)"+c1.removeAll(c2));
// System.out.println("c1--2"+c1.toString());
// System.out.println("c2--2"+c2.toString());
//boolean containsAll(Collection<?> c):判断集合中是否包含指定的集合元素,只有包含所有的元素才叫包含
// System.out.println("c1.containsAll(c2)"+c1.containsAll(c2));
// System.out.println("c1--3"+c1.toString());
// System.out.println("c2--3"+c2.toString());
//boolean retainAll(Collection<?> c):两个集合都有的元素,谁调用这个方法,交集元素就会存入它,其他元素清除
System.out.println("c1.retainAll(c2)"+c1.retainAll(c2));
System.out.println("c1--4"+c1.toString());
System.out.println("c2--4"+c2.toString());
}
}
注意:boolean retainAll(Collection<?> c):两个集合都有的元素,哪个集合调用这个方法,交集元素就会存入它,该集合其他元素清除。如A对B做交集,最终的集合保存在A中,B不变。返回值表示A是否发生改变。