集合是Java提供的一种容器,可以用来存储多个数据。
集合和数组的区别:
①数组的长度是固定的,集合的长度是可变的;
②数组中存储的是同一类型的元素,可以存储任意类型的数据;集合存储的都是引用类型数据,如果想要存储基本类型的数据,需要存储对应的包装类型;
③数组只能存储同一种类型的数据,集合可以存储不同类型数据(其实一般也只存储同一种类型数据)。
Collection集合类是单列集合类的根接口,用来存储一系列符合某种规则的元素。
List接口和Set接口是Collection集合类的子接口,其中List接口的常用实现类有ArrayList类、Vector类和LinkedList类;Set接口的常用实现类有HashSet类和TreeSet类。
List集合特点:元素有序(存储顺序和取出顺序一致),元素可重复。
List集合的特有功能:
①添加功能:void add(int index,Object element):在指定位置添加元素;
②获取功能:Object get(int index):获取指定位置的元素;
③删除功能:Object remove(int index):根据索引删除元素,返回被删除的元素;
④修改功能:Object set(int index,Object element):根据索引修改元素,返回被修改的元素。
栈:先进后出;
队列:先进先出;
数组:查询快,增删慢;
链表:查询慢,增删快。
ArrayList:ArrayList的底层数据结构是数组,查询快,增删慢,线程不安全,效率高。
Vector:Vector的底层数据结构是数组,查询快,增删慢,线程安全,效率低。
LinkedList:LinkedList的底层数据结构是链表,查询慢,增删快,线程不安全,效率高。
Set:Set集合元素无序,且元素不可重复。
HashSet:HashSet的底层数据结构是一个以链表为元素的数组,特点是元素无序,可以存储null,但是只能存储一个null(元素唯一)。
TreeSet:TreeSet的底层数据结构是红黑树,特点是元素有序且唯一,不能存储null值。
