一、List
1.1特点
@它是一个元素存取有序的集合。
@它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)
@集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素
1.2 常用方法
public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
public E get(int index) :返回集合中指定位置的元素。
public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
1.3子类
(1)ArrayList:集合数据存储的结构是数组结构
特点:元素增删慢,查找快
(2)LinkedList:集合数据存储的结构是链表结构。方便元素添加、删除的集合。
LinkedList是一个双向链表
二、Set
2.1特点
Set 接口中元素无序
2.2HashSet(无序)
(1)概念
java.util.HashSet 底层的实现其实是一个 java.util.HashMap 支持
HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。保证元素唯一性 的方式依赖于: hashCode 与 equals 方法。
(2)HashSet集合存储数据的结构(哈希表)
哈希表是由数组+链表+红黑树
HashSet存储自定义类型元素
给HashSet中存放自定义类型元素时,需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保 证HashSet集合中的对象唯一
(3)LinkedHashSet (有序)
是链表和哈希表组合的一个数据存储结构
LinkedHashSet继承自HashSet,源码更少、更简单,唯一的区别是LinkedHashSet内部使用的是LinkHashMap
三、Collection
一、常用功能
java.utils.Collections 是集合工具类,用来对集合进行操作。部分方法如下:
public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素。
public static void shuffle(List<?> list) 打乱顺序 :打乱集合顺序。
public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
public static <T> void sort(List<T> list,Comparator<? super T> ) :将集合中元素按照指定规则排 序。