Collection集合
    集合:集合是java中提供的一种容器,可以用来存储多个数据。
    Collection 常用功能
        public boolean add(E e); // 把给定的对象添加到当前集合中
        public void clear(); // 清空集合中所有的元素
        public boolean remove(E e); // 把给定的对象在当前集合中删除。
        public boolean contains(E e); // 判断当前集合中是否包含给定的对象。
        public boolean isEmpty(); // 判断当前集合是否为空。
        public int size(); // 返回集合中元素的个数。
        public Object[] toArray(); // 把集合中的元素,存储到数组中。
Iterator迭代器
    迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个 元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业 术语称为迭代。
    Iterator接口的常用方法如下:
        public E next(); // 返回迭代的下一个元素
        public boolean hasNext() :如果仍有元素可以迭代,则返回 true
Collections集合工具类
    是集合工具类,用来对集合进行操作
    Collection 常用方法
        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> ); //将集合中元素按照指定规则排 序
        ArrayList<Integer> list = new ArrayList<Integer>();
        Collections.addAll(list, 5, 222, 1,2);  //采用工具类 完成 往集合中添加元素
        Collections.sort(list);  //排序方法
    Comparator比较器
        Collections.sort(list, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge()‐o2.getAge(); //以学生的年龄升序
                return o2.getAge()‐o1.getAge(); //以学生的年龄降序
            }
        });

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<String> list = new ArrayList<String>();  // 创建List集合对象
ArrayList
    ArrayList
        是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素
    ArrayList使用步骤
        ArrayList<String> list = new ArrayList<>();
        泛型只能存储应用类型,不能存储基本数据类型
    ArrayList方法
        list.add("world");   // 添加元素
        list.get(0);   // 返回指定索引处的元素
        list.size();   // 返回集合中的元素的个数
        list.remove(0);  // 删除指定索引处的元素,返回被删除的元素
    存储基本数据类型
        byte            Byte
        short           Short
        int             Integer
        long            Long
        float           Float
        double          Double
        char            Character
        boolean         Boolean
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(1);  // 添加数据
        list.get(0);  // 取出数据
LinkedList集合
    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); // 将元素推入此列表所表示的堆栈。
        public boolean isEmpty(); // 如果列表不包含元素,则返回true。
        LinkedList<String> link = new LinkedList<String>();
        link.addFirst("abc1");   // 添加元素
HashSet
    是Set接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的(即存取顺序 不一致)
    HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。保证元素唯一性 的方式依赖于, hashCode 与 equals 方法
    HashSet接口中常用方法
        public boolean add(E e); // 把给定的对象添加到当前集合中
        public void clear(); // 清空集合中所有的元素
        public boolean remove(E e); // 把给定的对象在当前集合中删除。
        public boolean contains(E e); // 判断当前集合中是否包含给定的对象。
        public boolean isEmpty(); // 判断当前集合是否为空。
        public int size(); // 返回集合中元素的个数。
        public Object[] toArray(); // 把集合中的元素,存储到数组中。
        HashSet<String> set = new HashSet<String>();
        set.add("abc");   // 添加元素
LinkedHashSet
    保证元素唯一,和元素存放进去是有顺序的
    HashSet接口中常用方法
        public boolean add(E e); // 把给定的对象添加到当前集合中
        public void clear(); // 清空集合中所有的元素
        public boolean remove(E e); // 把给定的对象在当前集合中删除。
        public boolean contains(E e); // 判断当前集合中是否包含给定的对象。
        public boolean isEmpty(); // 判断当前集合是否为空。
        public int size(); // 返回集合中元素的个数。
        public Object[] toArray(); // 把集合中的元素,存储到数组中。
        Set<String> set = new LinkedHashSet<String>();
        set.add("abc");   // 添加元素
Map集合
    概述
        Map 中的集合,元素是成对存在的(理解为夫妻),每个元素由键与值两部分组成,通过键可以找对所对应的 值。
        需要注意的是, Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
    Map常用子类
        HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。
        LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。
    Map接口中的常用方法
        public V put(K key, V value); // 把指定的键与指定的值添加到Map集合中。
        public V remove(Object key); // 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值。
        public V get(Object key); // 根据指定的键,在Map集合中获取对应的值。
        public Set<K> keySet(); // 获取Map集合中所有的键,存储到Set集合中。
        public Set<Map.Entry<K,V>> entrySet(); // 获取到Map集合中所有的键值对对象的集合(Set集合)
        public K getKey(); // 获取Entry对象中的键。
        public V getValue(); // 获取Entry对象中的值
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("黄晓明", "杨颖");    // 添加元素到集合
        Set<String> keys = map.keySet();  // //获取所有的键 获取键集
        Set<Entry<String,String>> entrySet = map.entrySet();  // // 获取 所有的 entry对象 entrySet
        String key = entry.getKey();  // 获取键
        String value = entry.getValue();  // 获取值
    Map集合遍历键找值方式
        键找值方式:即通过元素中的键,获取键所对应的值
    LinkedHashMap
        HashMap基础上保证了数据的顺序
        LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
Arrays
    概述
        包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法
    操作数组的方法
        int[] arr = {2,34,35,4,657,8,69,9};
        String s = Arrays.toString(arr);   // 数组内容转为字符串
        Arrays.toString(arr)   // 升序排序
Math
    概述
        包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数
    基本运算的方法
        double d1 = Math.abs(‐5); //返回 double 值的绝对值  d1的值为5
        double d1 = Math.ceil(3.3); //返回大于等于参数的最小的整数。 d1的值为 4.0
        double d1 = Math.floor(3.3); //返回小于等于参数最大的整数 d1的值为3.0
        long d1 = Math.round(5.5); //返回最接近参数的 long。(相当于四舍五入方法) d1的值为6.0