集合总结
一、概述
-  作用:存储对象的容器,代替数组的,使用更加的便捷 
-  所处的位置:java.util 
-  体系结构  
二、Collection
-  内部的每一个元素都得是引用数据类型 
-  常用方法 -  add(Object o) 添加元素 
-  addAll(Collection c) 将指定集合中的所有元素存入到当前集合 
-  remove(Object o) 移除元素 
-  removeAll(Collection c) 删除当前集合中包含指定集合中的所有元素 
-  isEmpty() 判断集合是否为空集合 
-  size() 返回集合中元素的个数 
-  clear() 清空集合 
-  contains(Object o) :判断集合中是否包含指定的元素 
-  containsAll(Collection c) 判断当前集合是否包含指定集合中的所有元素 
 
-  
三、List
-  List是Collection下的一个子接口 
-  特点:有序,可重复,有下标 
-  常用方法 -  add(int index,Object) 将指定元素添加到当前集合指定的位置 
-  remove(int index) 删除当前集合指定位置上的元素 
-  get(int index) 获取当前集合中指定位置上的元素 
-  set(int index, Object o) 将当前集合中指定位置上的元素替换为指定的元素 
-  List subList(int a,int b) 截取当前集合中的元素获取一个子集、 
 
-  
四、List接口的实现类
(一)ArrayList(重点)
-  特点:底层封装了一个数组用于存储数据,数组默认长度为10 
-  查询快,增删慢 
-  JDK1.2提供的 
-  线程不安全 
(二)LinkedList
-  特点:底层封装了链表用于存储数据, 
-  增删快,查询慢,首尾操作极快 
-  JDK1.2提供 
-  线程不安全 
(三)Vector(了解)
-  内部封装一个数组用于存储数据 
-  查询快,增删慢 
-  JDK1.0提供,最原始的集合 
-  线程安全的 
-  Stack(栈)继承了Vector 
五、遍历集合
-  for循环遍历 
-  新循环,增强for循环 
-  迭代器(iterator)遍历 -  boolean hashNext() 问,是否有下一个元素 
-  E next() 取,获取下一个元素 
-  void remove() 删 删除当前元素 
 
-  
-  forEach方法遍历 结合了Lambda表达式 
六、Collections (类)
-  java.util.Collections 是一个集合工具类 
-  相关方法 -  Collections.sort(List list) 将集合进行升序排序 
-  Collections.sort(List list, Comparator com) 自定义排序 
-  Collections.reverse(List list) 将集合元素进行反转 
 
-  
七、Set接口
-  也是Collection下的子接口 
-  特点:无序,无下标,元素不可重复 
-  常用方法:Set的常用方法基本都是继承自Collection 
八、Set接口的实现类
(一)HashSet
-  特点: 无序,不重复,无下标 
-  数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry 
-  去重机制:hashCode()方法 + equals()方法 
(二) LinkedHashSet
-  特点:不能重复,无下标 ,但是有序(元素插入数据顺序是有序的) 
-  数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry 
-  去重机制 :hashCode()方法 + equals()方法 
(三)TreeSet
-  特点:不能重复,无下标,有序(可以自动对集合中存入元素进行自然排序<升序>,元素必须实现Comparable接口) 
-  数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry,当链表中元素过多时,会通过二叉树进行排序 
-  去重机制:根据Comparable接口中的compareTo()方法,方法返回值去过为0则表示对象相同 
-  compareTo() 比较器: -  返回值大于0 升序 
-  返回值等于0 相等,去重 , 
-  返回值小于0 降序 
 
-  
九、Map
-  特点:一个元素由两个对象构成,分别作为key和value,无序,无下标,键不可以重复,值可以重复,通过键来访问 
-  常用方法 -  put(Object key,Object value) :往Map中存放一个元素 
-  get(Object key) 通过指定的key获取当前集合中的value 
-  remove(Object key) 通过指定的key删除当前集合中的元素 
-  size() 获取集合中元素的个数 
-  keySet() : 将集合中所有的key转换成一个Set集合 
-  entrySet(): 将集合中所有元素转换成一个Set集合 
-  values(): 将集合中所有的value 转换成一个Collection集合 
-  containsKey(Object key): 当前集合中是否包含指定的key 
-  containsValue(Object value):当前集合中是否包含指定的value 
 
-  
-  遍历Map集合的四种方式 -  遍历所有的key keySet() 
-  遍历所有的键值对 entrySet() 
-  遍历所有的value values() 
-  forEach()遍历 
 
-  
十、Map接口的实现类
(一)HashMap(重点)
-  特点:无序,不重复,无下标 
-  允许null作为key和value 
-  JDK1.2提供,线程不安全 
-  去重机制:hashCode() + equals() 
(二)LinkedHashMap
-  特点:不重复,无下标,有序(可以保存元素的插入顺序) 
-  允许null作为key和value 
-  JDK1.2提供,线程不安全 
-  去重机制:hashCode() + equals() 
(三) TreeMap
-  特点:不重复,无下标,有序(对key自动排序(自然排序)) 
-  允许null作为key和value 
-  JDK1.2提供,线程不安全 
-  元素必须实现Comparable接口,并重写compareTo方法 
-  去重机制:根据compareTo方法,如果返回值为0则是同一个对象 
(四)Properties
-  一般会创*.properties文件作为配置文件 
-  Prpperties是用于读取*.properties文件的 

















![[hello,world]这个如何将[ ] 去掉](https://img-blog.csdnimg.cn/fe1f55d13c3b497f8cab63cfed4c85e8.png#pic_center)

