Collection表示一组对象,它是集合,收集的意思,就是把一些数据收集起来
Collenction函数库与数组的两点不同:
1.数组的容量是有限的,而Collection库是没有这样的限制的,它容量可以自动调节
2.Collection函数库只能存放对象,而数组没有这样的限制
集合比数组的优势:
1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。
2. 集合的长度是会发生变化的,数组的长度是固定的。
Collection 单例集合的根接口:
-----------------------------------------------------------------------------
List 是实现List接口的集合类,具有的特点:有序,可重复
ArrayList ArrayList 底层是维护了一个Object数组实现的。 特点: 查询速度快,增删慢。
LinkedList LinkedList 底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。
Vector(了解即可) 底层也是维护了一个Object的数组实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低。
------------------------------------------------------------------------------
Set 如果是实现了Set接口的集合类,具备的特点: 无序,不可重复。
HashSet 底层是使用了哈希表来支持的,特点: 存取速度快.
TreeSet 如果元素具备自然顺序 的特性,那么就按照元素自然顺序的特性进行排序存储。
-------------------------------------------------
Collection 方法
boolean isEmpty();//判断Collection集合中是否有元素,如果有返回false,否则true
boolean contains(Object o);//判断Collection集合中是否含有对象Object o,如果有则返回ture,否则false
Iterator<E> iterator();//返回该Collection的迭代器对象,帮助我们遍历Collection
boolean add(E e);//添加元素到Collection容器中,添加成功返回true
boolean remove(Object o);//移除该Object o 在该Collection中,移除成功返回true
boolean containsAll(Collection<?>c);//判断该集合是否包含集合c的所有元素,如果是则返回true,否则false
boolean addAll(Collection<? extends E> c);
boolean removeAll(Collection<?> c);//这两个方法同上
boolean retainAll(Collection<?> c);//返回两个集合的交集
default boolean removeIf(Predicate<? super E> filter) //移除给定条件的对象在该集合中
void clear();//移除该集合中所有的元素,该集合将会变成空集合
----------------------------------------------------------------
代码演示:
package Test.Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
* @Author 7aY
* @Description: TODO(Collection方法的实现)
* @Date :Create in 20:022018/1/25
*/
public class Collection_Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();//创建一个Collection集合接口的子类
list.add("a");//在list集合中添加对象字符串String
list.add("b");
list.add("c");
System.out.println("list初始"+list);//打印出初始List的值
System.out.println("list是否为空"+list.isEmpty());//判断list是否为空
System.out.println("list中是否含有a"+list.contains("a"));//判断list集合中是否包含字符串"a"
list.remove("a");//在list集合中移除字符串"a"
System.out.println("list 移除字符串“a的结果" +list);
List<String> list1 = new ArrayList<>();//创建一个新的list集合
list1.add("qwe");
System.out.println("list集合中是否包含list1集合的全部元素"+list.containsAll(list1));
Iterator iterator = list.iterator();//创建list的迭代器
while (iterator.hasNext()){
//当迭代器iterator还能下一个时,返回ture
System.out.print(iterator.next());//打印出list的迭代值
}
}
}
--------------------------
结果:
list初始[a, b, c]
list是否为空false
list中是否含有atrue
list 移除字符串“a的结果[b, c]
list集合中是否包含list1集合的全部元素false
bc