1.数组和集合的区别: 相同点: 都是容器,可以存储多个数据. 不同点: 数组的长度是不可变的,集合的长度是可变的 数组可以存储基本数据类型和引用数据类型,集合只能存引用数据类型 2.linkedList 和ArrayList区别 : LinkedList查询慢,增删快,底层为链表结构 ArrayList查询快,增删慢 ,底层为数组结构 Collection集合常用方法(所有单列集合都通用方法) 方法名 说明 boolean add(E e) 添加元素 boolean remove(Object o) 从集合中移除指定的元素 boolean removeIf(Object o) 根据条件进行移除 void clear() 清空集合中的元素 boolean contains(Object o) 判断集合中是否存在指定的元素 boolean isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中元素的个数 Collection集合的遍历: 1.迭代器遍历: iterator(): 2.增强for遍历 对象名.for list集合 特点: 有序集合,这里的有序指的是存取顺序 (存入523,取出也是523); 允许有重复元素,同时有索引,可以用fori遍历集合 List集合的特有方法(ArrayList.LinkedList通用方法) 方法名 描述 void add(int index,E element) 在此集合中的指定位置插入指定的元素 E remove(int index) 删除指定索引处的元素,返回被删除的元素 E set(int index,E element) 修改指定索引处的元素,返回被修改的元素 E get(int index) 返回指定索引处的元素 LinkedList(继承List集合):底层为链表结构 特有方法: 方法名 说明 public void addFirst(E e) 在该列表开头插入指定的元素 public void addLast(E e) 将指定的元素追加到此列表的末尾 public E getFirst() 返回此列表中的第一个元素 public E getLast() 返回此列表中的最后一个元素 public E removeFirst() 从此列表中删除并返回第一个元素 public E removeLast() 从此列表中删除并返回最后一个元素 ArrayList(继承List集合): 常用方法 : public boolean remove(Object o) 删除指定的元素,返回删除是否成功 public E remove(int index) 删除指定索引处的元素,返回被删除的元素 public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素 public E get(int index) 返回指定索引处的元素 public int size() 返回集合中的元素的个数 Set集合(本身是一个接口):继承自Collection HashSet和TreeSet : 当不需要指定排序时,可以默认使用HashSet 特点: 不可以存储重复元素. 没有索引,不能使用fori遍历. TreeSet集合(继承Set集合):底层结构为红黑树 特点:不可以存储重复元素. 没有索引 可以将元素按照规则进行排序; TreeSet():根据其元素的自然排序进行排序 TreeSet(Comparator comparator) :根据指定的比较器进行排序 ** 推荐使用排序器,在new对象是,使用有参构造,(new Comparable)通过匿名内部类或者lamdba排序** HashSet集合(继承自Set): 底层为哈希表,由数组链表红黑树构成 特点:底层数据结构是哈希表 . 存取无序 . 不可以存储重复性元素,并且无索引 哈希值: 通过HashCode()方法计算,如果需要不同对象不同哈希值,需要重写HashCode方法 Map集合:双列集合 概述: interface Map<K,V> K:键的类型;V:值的类型 特点: 双列集合,一个键对应一个值 , 键不可以重复,值可以重复 Map集合的基本功能【应用】 方法介绍 方法名 说明 V put(K key,V value) 添加元素 V remove(Object key) 根据键删除键值对元素 void clear() 移除所有的键值对元素 boolean containsKey(Object key) 判断集合是否包含指定的键 boolean containsValue(Object value) 判断集合是否包含指定的值 boolean isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数 Map集合的获取功能【应用】 方法介绍 方法名 说明 V get(Object key) 根据键获取值 Set keySet() 获取所有键的集合 Collection values() 获取所有值的集合 Set<Map.Entry<K,V>> entrySet() 获取所有键值对对象的集合 Map集合的遍历方式: 获取所有键的集合,使用entrySet()方法实现,返回一个所有键的集合,遍历集 合,用get方法分别获取其中每一个键和值即可 HashMap集合:(继承Map接口):底层为哈希表,由数组链表红黑树构成 HashMap集合概述和特点【去重】 HashMap底层是哈希表结构的 依赖hashCode方法和equals方法保证键的唯一 如果键要存储的是自定义对象,需要重写hashCode和equals方法 TreeMap集合:底层由红黑树构成 TreeMap集合概述和特点【排序】 TreeMap底层是红黑树结构 依赖自然排序或者比较器排序,对键进行排序 如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象时候给出比较器排序规则