zoukankan      html  css  js  c++  java
  • java基础使用的集合大总结

    Java集合大总结

    java集合框架简图(API关系图):

    虚线框表示接口,实线框表示类.

    特点和使用总结:

    Collection:

    • 单列单值.

    List:

    • 有序(查询顺序和插入顺序一致),有下标(索引),元素允许重复.

    ArrayList:

    • 地测是动态数组数据结构,在内存中挨着连续开辟空间,查询快,增删慢.

    LinkedList:

    • 底层是数据链表结构,在内存中不挨着,不连续开辟空间,查询慢,增删快.

    Set/HashSet:

    • 无序(查询顺序和插入顺序不一致),无下标(索引),元素不允许重复,底层是Hash表

    TreeSet:

    • 无序,没有索引,不允许重复,可以对元素进行排序,底层是红黑树

    Map/HashMap:

    • 双列双值,无序(查询顺序和插入顺序不一致),误下标(索引),键不允许重复,值允许重复,键值是一一对应的,叫键值对,java中叫做Entry对象,底层是Hash表数据结构

    TreeMap:

    • 可以对键进行排序,底层是红黑树

    实际开发中如何选择用哪一种集合?

    • 根据集合特点来选择,实际开发中多用ArrayList,HashSet,HashMap

    使用总结:

    • HashSet,HashMap如果要求属性相同才认为是同一个对象,那么要重写HashCode和equals方法

    • TreeSet,TreeMap如果存储自定义类型,要指定排序规则.要么使用自然排序,要么使用比较器排序

    Collection API总结:

    Map API总结:

    集合遍历总结:

    • List集合:

      • 通过toArray方法把集合转换为数组

      • 普通for循环结婚get(索引)方法

      • forEach/迭代器

    • Set集合:

      • 通过toArray将集合转换为数组

      • forEach/迭代器

    • Map集合:

      • 拿到每一个键,KeySet,对每一个键进行遍历,通过键调用get(键)找到值

      • 拿到每一个Entry对象,EntrySet,通过遍历Entry对象获取每一个键和值

      • 实际中该用哪种遍历集合呢?

        拿到每一个Entry对象

        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();

          for(Map.Entry<String, Integer> en : entrySet) {

          System.out.println(en.getKey() + "=" + en.getValue());

           }

  • 相关阅读:
    印刷行业合版BOM全阶维护示例
    C#实现WinForm禁止最大化、最小化、双击标题栏、双击图标等操作的方法
    EasyUI Tree节点拖动到指定容器
    Excel GET.DOCUMENT说明
    Excel GET.CELL说明
    ExecuteExcel4Macro (宏函数)使用说明
    MSSQL:查看所有触发器信息的命令
    SQL Server 2008作业失败:无法确定所有者是否有服务器访问权限
    Cocoa History
    Working with Methods
  • 原文地址:https://www.cnblogs.com/859630097com/p/14208169.html
Copyright © 2011-2022 走看看