• Java学习笔记--集合


    学习集合需要掌握1136, 即一个图,一个类(Collections),三个知识点(foreach, 泛型, 自动打包和解包),六个接口(Collection,  List, Set, Map, Iterator, Comparable).

    1. 一个图:Map存储的是键值对,可以认为是双列Collection.

      

    2. 一个类:java.utils.Collections类

      java.utils.Collections类提供了一些静态方法实现了基于List容器的一些常用算法。

        void sort(List), 对List容器内的元素排序

          void shuffle(List), 对List容器内的对象进行随机排序

          void reverse(List), 对List容器内的对象进行逆序排列

          void fill(List, Object), 用一个特定的对象重写整个List容器

          void copy(List dest, List src), 将src List容器内容复制到dest List容器

          int binarySearch(List, Object),   对于顺序的List容器,采用折半查找的方法查找特定对象 

     3. Comparable接口:

         大家或有疑问,上面那的算法是根据什么来确定容器中的对象的“大小”顺序的呢?

         所有可以"排序"的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法:

         public int compareTo(Object obj), 改方法的返回值:

         返回0, 表示this == obj

         返回正数, 表示this > obj

         返回负数,表示this < obj

       实现了Comparable接口的类通过实现compareTo方法从而确定该类对象的排序方式。

       注意重写compareTo(Object o)的时候要先判断o是不是当前类类型的:不是,就抛出一个异常;是,接着写判断逻辑

    4.如何选择数据结构

      衡量标准: 读的效率和改的效率

      Array读快改慢,集合占用一块连续的内存

      Linked改快读慢, 集合中的元素分散在内存中,通过指针相连

      Hash两者之间

    5.Map接口

       实现Map接口的类用来存储键-值对。

       Map接口的实现类有HashMap(以Hash表作为索引)和TreeMap(以Tree作为索引)等。

       Map类中存储的键-值对通过键来标识,所以键的值不能重复。

        常用方法:

        Object  put(Object key, Object value), 往容器里添加键值对,如果key已经存在,则将key对应的value的值设置为新value,返                      回值是原来的value。

        Object  get(Object key), 找到key对应的value,找不到,则返回 null

        Object  remove(Object key),  如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

        boolean containsKey(Object key), 如果此映射包含指定键的映射关系,则返回 true

       boolean containsValue(Object value), 如果此映射将一个或多个键映射到指定值,则返回 true

         int size(), 返回此映射中的键-值映射关系数。

         boolean isEmpty(), 如果此映射未包含键-值映射关系,则返回 true

         void putAll(Map m), 从指定映射中将所有映射关系复制到此映射中(可选操作)。

         void clear(), 从此映射中移除所有映射关系(可选操作)。

    6. 自动装箱拆箱

        自动将基础类型转换为对象

        自动将对象转换为基础类型

  • 相关阅读:
    成都Uber优步司机奖励政策(3月17日)
    北京Uber优步司机奖励政策(3月17日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(3月17日)
    oracle系统包—-dbms_output用法
    oracle系统包——dbms_job用法(oracle定时任务)
    oracle系统包——DBMS_PIPE用法
    oracle系统包——dbms_alert用法
    oracle系统包——dbms_transaction用法
    oracle系统包——dbms_random用法
    oracle存储过程中is和as区别
  • 原文地址:https://www.cnblogs.com/byron0918/p/4628953.html
Copyright © 2020-2023  润新知