目标:Collection集合框架的概述
什么是集合,与数组有什么区别?
集合是一个容器。容器中的数据称为元素。 数据==元素。
集合的大小和元素类型可以不固定:大小可变,类型任意。
数组的长度和数据类型在定义的时候就要确定:长度固定,类型固定。
数组一般适合用于做类型和个数确定的数据的存储和操作。
集合适合做元素个数不确定的存储和操作,以及需要对学生进行增删改查的操作。
开发中:集合用的更多。
Java中集合的代表是:Collection。是全部集合的祖宗类。
Collection集合的体系:
-------------------------Collection< E >(接口)
----------------------- /----------------------------\
----------------/--------------------------------------------\
----------Set< E >(接口) ---------------------------List< E >(接口)
----------- / -------------------------------------/---------------------------------\
-----HashSet< E >(实现类) ------LinkedList< E >(实现类)----ArrayList< E >(实现类)
--------- /
LinkedHashSet< E >(实现类)
Collection集合体系的特点:
Set系列(Collection)集合:添加的元素是无序,不重复,无索引的。
– HashSet:添加的元素是无序,不重复,无索引的。
– LinkedHashSet:添加的元素是有序,不重复,无索引的。
List系列集合:添加的元素是有序,可重复,有索引的。
– LinkedList:添加的元素是有序,可重复,有索引的。
– ArrayList:添加的元素是有序,可重复,有索引的。
小结:
Collection集合是集合的祖宗类,集合大小可变,类型可变,但是建议用泛型约束类型。
Set系列集合特点:添加的元素是无序,不重复,无索引的。
List系列集合:添加的元素是有序,可重复,有索引的。
public class CollectionDemo {
public static void main(String[] args) {
// 添加的元素是无序,不重复,无索引的。
Collection<String> sets = new HashSet<>();
sets.add("MySQL");
sets.add("MyBatis");
sets.add("HTML");
sets.add("HTML");
sets.add("MyBatis");
sets.add("Java");
System.out.println(sets);
// 添加的元素是有序,可重复,有索引的。
Collection<String> lists = new ArrayList<>();
lists.add("MySQL");
lists.add("MyBatis");
lists.add("HTML");
lists.add("HTML");
lists.add("MyBatis");
lists.add("Java");
System.out.println(lists);
}
}