前言
分析完
ImmutableSet
后,接着分析ImmutableList
,从字面上可知其是不可变的列表,可根据索引获取对应项,由于其在创建后不可变,底层可以使用数组来存储,这样会访问效率。
分析完
ImmutableSet
后,接着分析ImmutableList
,从字面上可知其是不可变的列表,可根据索引获取对应项,由于其在创建后不可变,底层可以使用数组来存储,这样会访问效率。
在开发
Java Web
时,需要使用Spring
的知识,可以说没有Spring
,很难出现这么便捷的Web
开发技术,现在工作内容虽然编写的很多都是业务层代码,但也需要适时从业务层抽离出来,系统学习Spring
框架知识。
介绍完
ImmutableCollection
后,接着看看ImmutableSet
,其表示不可变哈希集合,即创建后无法对集合再进行修改操作,并且ImmutableSet
会使用一个数组(可变参数数组)维护插入顺序,即当遍历时会按照插入顺序输出。
经过前面几个基础点的学习,接着分析
Guava
中的核心,不可变集合,所有不变集合的父类为ImmutableCollection
,其子类包括EntryCollection
、ImmutableSet
、ImmutableList
、ImmutableMultiSet
、ImmutableMapValues
等,现分析其源码。
在原生
Java
中,当对不同的类进行比较时,需要让类实现Comparable
接口或者Comparator
接口,其特别是在基于Hash
实现的散列表中非常重要。而Guava
实现了Ordering
类,可以供开发者更方便地比较不同对象。
Java
中的Object
提供了很多方法供所有的类使用,特别是toString
、hashCode
、equals
、getClass
等方法,在日常开发中作用很大,Guava
中包含Objects
类,其提供了很多更为强大的方法。
如何学习源码,直接看
JDK
,多学习其他小而精巧的开源项目,绝对有益,而Guava
项目则可直接满足需求,小而精,有了阅读JDK
源码的经验,相信Guava
的品读过程也会比较愉快,尽可能每天分析一个类。