zoukankan      html  css  js  c++  java
  • [重新做人]从头学习JAVA SE——java.util

    自己的java基础实在是一言难尽,虽然看过两遍核心技术,但是真的看完就忘,大多数都是做东西时候,从百度和各种博文看来的,觉得实在有必要再看一遍写一点记录,不算博文,更像是笔记,写给自己看的

    java.util

    其实源码的注释有时候具有比源码更直观的信息

    集合

    java.util最外层的包就是集合的一些工具,从上到下列在这里:

    • AbstractCollection: 减少需要实现Collection的方法,不可编辑的Collection只需要实现iterator和size,可编辑的还需要实现add和remove
    • AbstractList:不可编辑的列表需要实现get和size,可编辑需要实现set和add,remove等方法,减少实现随机访问的数据源的方法,如果需要实现序列访问的数据源,AbstractSequentialList是个更好的选择
    • AbstractMap:不可编辑的Map需要实现entrySet,基于AbstractSet实现一个Set这个set不支持add和remove方法,它的Iterator支持;可编辑的Map需要覆盖put方法,iterator需要添加remove方法
    • AbstractQueue:这个类的实现不允许null元素,最小扩展方法是定义方法offer(不能插入null元素)以及方法peek,poll,size和iterator
    • AbstractSequentialList:这个类与AbstractList相反,实现随机访问的功能get,set和remove基于表的list iterator,默认的实现了序列访问的数据源,例如链表。不可编辑的需要实现hasNext,next,hasPrevious,previous,和index方法;可编辑的需要额外实现set方法和remove方法
    • AbstractSet:通过向AbstractCollection中添加Set接口限制(不允许重复实例)实现,这个类没有重载任何从AbstractCollection来的方法实现,而是额外添加了equals和hashCode方法
    • ArrayDeque:双端队列的可变数组实现,没有容量限制,非线程安全,用作栈的时候比Stack快,用作队列的时候比LinkedList快;
    • ArrayList:List接口的可变数组实现,提供了方法来调整数组的容量,非线程安全,当插入元素数量大于底层的数组容量时,会调用容量增长策略
    • ArrayPrefixHelpers:ForkJoin tasks 来执行Arrays.parallelPrefix 操作
    • Arrays:从1.7之后新引入了ComparableTimSort方法,https://www.jianshu.com/p/bbbbf4577f8e ;DualPivotQuicksort双轴快排,有空可以看下
    • ArraysParallelSortHelpers:暂时跳过
    • Base64:
    • BitSet:
    • Calendar:
    • Collection:
    • ComparableTimSort
    • Comparator
    • Comparators:
    • ConcurrentModificationException:当一个线程在操作集合时,其他线程对集合的操作会发生
    • Currency:货币相关
    • Date:
    • Deque
    • Dictionary
    • DoubleSummaryStatistics:stream辅助类
    • DualPivotQuicksort
    • DuplicateFormatFlagsException:重复格式化标志异常
    • EmptyStackException: 空栈异常
    • Enumeration:枚举接口,已经被Iterator替代
    • EnumMap:
    • EnumSet:
    • EventListener:所有的事件接口必须扩展的
    • EventListenerProxy:
    • EventObject:
    • FormatFlagsConversionMismatchException:
    • Formattable:
    • FormattableFlags
    • Formatter
    • FormatterClosedException
    • GregorianCalender
    • HashMap:key和value都可以为null,无序
    • HashSet:实际上是一个HashMap
    • HashTable:过时了
    • IdentityHashMap:只有k1==k2而不是k1.equals(k2)时,k1,k2才会被视为相同的键
    • IllegalFormatCodePointException:不合法的码点
    • IllegalFormatConversionException:不兼容的转换符
    • IllegalFormatException:不合法的转换格式字符串
    • IllegalFormatFlagsException: 不合法的格式标志
    • IllegalFormatPrecisionException:不合法的精度表示
    • IllegalFormatWidthException:不合法的宽度表示
    • IllformedLocaleException:非标准的BCP 47 tag
    • InputMismatchException:与期待类型不匹配
    • IntSummaryStatistics:
    • InvalidPropertiesFormatException:
    • Iterator:迭代器接口
    • JapaneseImperialCalendar: 日本历实现类
    • JumboEnumSet:
    • LinkedHashMap:维护插入顺序的HashMap或者上次访问的顺序,相同的键重新插入不影响原来键的位置
    • LinkedHashSet
    • LinkedList
    • List
    • ListIterator
    • ListResourceBundle:ResourceBundle的子类
    • Locale
    • LocaleISOData
    • LongSummaryStatistics
    • Map
    • MissingFormatArgumentException:格式字符串指向的参数index不存在
    • MissingFormatWidthException:缺少宽度参数
    • MissingResourceException:resource不存在
    • NavigableMap:提供了一些导航方法
    • NavigableSet
    • NoSuchElementException:请求的元素不存在
    • Objects:对象工具包,包括equal,hash,toString,Null检查等方法
    • Observable:可观察者
    • Observer:观察者
    • Optional:消除Null的工具类java8
    • OptionalDouble
    • OptionalInt
    • OptionalLong
    • PrimitiveIterator:原始类型迭代器,避免装箱和拆箱
    • PriorityQueue:堆
    • PropertyPermission
    • PropertyPermissionColleciton:
    • PropertyResourceBundle
    • Queue
    • Random
    • RandomAccess:
    • RandomAccessSubList
    • RegularEnumSet
    • ResourceBundle
    • Scanner
    • ServiceConfigurationError:加载服务provider时抛出的错误
    • ServiceLoader
    • Set
    • SimpleTimeZone:TimeZone的具体子类
    • SortedMap
    • SortedSet
    • Spliterator:遍历和分割一个数据源的元素,数据源可能是数组,集合,IO Channel,或者一个生成器
    • Spliterators:
    • Stack:基于vector的栈接口
    • StringJoiner:组装
    • StringTokenizer:不建议使用,分割字符串更推荐String.split或者正则表达式
    • SubList:位于AbstractList内
    • TaskQueue:一个Timer的堆,位于Timer.java内
    • Timer:定时器
    • TimerTask: 定时任务
    • TimeZone :时区
    • TimSort
  • 相关阅读:
    cas 单点登录(SSO)实验之二: cas-client
    前端要给力之:语句在JavaScript中的值
    【Linux】Tomcat安装及一个服务器配置多个Tomcat
    【Linux】 JDK安装及配置 (tar.gz版)
    Android自动化测试中AccessibilityService获取控件信息(1)
    Android自动化框架 模拟操作 模拟测试
    Android应用程序如何调用shell脚本(一)
    关于lidroid xUtils 开源项目
    android 开源项目列表【持续整理中。。。】
    android开发常用组件【持续更新中。。。】
  • 原文地址:https://www.cnblogs.com/zhouyu0-0/p/13539112.html
Copyright © 2011-2022 走看看