zoukankan      html  css  js  c++  java
  • java核心技术记录之集合

    java库中的具体集合:

    集合类型 描述
    ArrayList 一种可以动态增长和缩减的索引序列
    LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列
    ArrarDeque 一种用循环数组实现的双端队列
    HashSet 一种没有重复元素的无序集合
    TreeSet 一种有序集
    EnumSet 一种包含枚举类型值的集
    LinkedHashSet 一种可以记住元素插入次序的集
    PriorityQueue 一种允许高效删除最小元素的集合
    HashMap 一种存储键/值关联的数据结构
    TreeMap 一种键值有序排列的映射表
    EnumMap 一种键值属于枚举类型的映射表
    LinkedHashMap 一种可以记住键/值添加次序的映射表
    WeakHashMap 一种其值无用武之地后可以被垃圾回收器回收的映射表
    IdentityHashMap 一种用==,而不是用equals比较键值的映射表

    LinkedList是java提供的一个链表结构,它是一个有序集合。链表不支持快速地随机访问,如果要查看链表中第n个元素,就必须从头开始,越过n-1个元素。

    鉴于这个原因,在程序需要采用整数索引访问元素时,尽可能不要选用链表。下面的代码中

    LinkedList<Stirng> list=......;
    for(int i=0;i<list.size();i++){
        do something with list.get(i);
    }

    每次查找一个元素都要从列表的头部重新开始搜索,效率极低。(get方法做了微小的优化,如果索引大于size()/2就从列表尾端开始搜索元素。)

    如果链表中只有很少几个元素,就完全没有必要为get方法和set方法的开销烦恼。使用链表的唯一理由是尽可能地减少在列表中间插入或删除元素所付出的代价。

    如果列表只有少数几个元素,就完全可以使用ArrayList。如果需要对集合进行随机访问,就使用数组或ArrayList,而不要使用链表。

  • 相关阅读:
    MyBatis+MySQL 返回插入的主键ID
    微信被动回复用户消息-文本消息-springmvc环境下自动生成xml
    微信自动回复消息示例
    微信自定义菜单
    微信获取二维码
    微信被动回复用户消息-文本消息-填坑
    微信获得access-token
    设置ckeditor的高度
    Java三行代码搞定MD5加密
    Highchart
  • 原文地址:https://www.cnblogs.com/liuxin-listenx/p/3173762.html
Copyright © 2011-2022 走看看