1、List接口:有序、有索引、可以重复
List接口中常见的方法:
public void add(int index,E element);将指定的元素,添加到集合的指定位置上
public E get(int index);返回集合中指定位置的元素。
public E remove(int index);移除列表中指定位置的元素,返回的是被移除元素。
public E set(int index,E element);用指定元素替换集合中指定位置的元素,返回更新前的元素。
List的实现类:
ArrayList类:(数组存储)查询快,增删慢。
LinkedList类:(链表结构)查找慢,增删快。
LinkedList特有的方法:
public void addFirst(E e);将指定元素插入到列表的开头。
public void addLast(E e);将元素添加到列表的结尾。
public E getFirst();返回此列表的第一个元素。
public E getLast();返回此列表的最后一个元素。
public E removeFirst();移除并返回此列表的第一个元素
public E removeLast();移除并返回此列表的最后一个元素。
public E pop();弹出,删除集合的第一个元素并返回。
public void push(E e);压入,向集合的第一个位置添加元素。
2、set接口:无序、无索引、不可重复(但不能保证它的实现类无序)
set的实现类:
(1)HashSet实现类:
根据set接口集合没有索引的特性,遍历集合可以使用增强for来实现。
hashCode();该方法可以获取对象的哈希值。Object中的方法,根据地址值来计算哈希值。
同样的也可以利用根据属性是否相同来计算哈希值。
HashSet判断唯一性:先使用hashCode()方法比较对象的哈希值,哈希值不同肯定是不同对象。
但哈希值相同不一定是同一个对象,需要重写equals()方法。
(2)LinkedHashSet实现类:有序的集合
3、可变参数
可变参数方法格式:
修饰符 返回值类型 方法名(参数类型...参数名){
方法体;
}
4、Collections工具类
(1)addAll方法:向集合中批量传入元素。
static boolean addAll(Collection c,T...elements);向集合中批量添加元素,参数c为集合,elements为要添加的元素。
(2)shuffle方法:打乱集合的顺序。
static void shuffle(List<?> list);
(3)sort方法:自然排序