摘要:
Spring Boot实现了自动加载DataSource及相关配置。当然,使用时加上@EnableAutoConfiguration注解是必须的。下面就是对这一部分的源码分析。 (1)Spring Boot启动后会调用org.springframework.boot.autoconfigure.jd 阅读全文
摘要:
散列的价值在于速度。我们使用数组来保存键的信息,这个信息并不是键本身,而是通过键对象生成一个数字(散列码),作为数组下标。由于数组的容量是固定的,而散列容器的大小是可变的,所以不同的键可以产生相同的数组下标(散列码)。也就是说,可能会有冲突(当然也有特例,比如EnumMap和EnumSet)。所以, 阅读全文
摘要:
映射表的基本思想是维护键-值对的关联,通过键来寻找值。下面是标准Java类库中几种Map的实现: (1) HashMap:Map基于散列表的实现,插入和查询键值对的开销是固定的。可以通过构造器设置容量和负载因子,以调整容器性能。它是默认选择。 (2) LinkedHashMap:类似于HashMap 阅读全文
摘要:
Collection是List、Set、Queue的共同接口。Collection主要方法有: int size():返回当前集合中元素的数量 boolean add(E e):添加对象到集合 boolean remove(Object o):删除指定的对象 boolean contains(Obj 阅读全文
摘要:
执行各种添加和移除的方法在Collection中都是可选操作的,这意味着实现类并不需要为这些方法提供实现。当我们调用这些方法时,将不会执行有意义的行为,而是通常抛出UnsupportedOperationException。 下面例子我们可以看出Collection的各种实现类中: (1) java 阅读全文
摘要:
每个java.util容器都有其自己的Abstract类,它们提供了该容器接口的部分实现。下面是一个定制自己的Map的例子(List set就省略了): 定制自己的Map实现AbstractMap-->Map,需要实现[Set<Map.Entry<K,V>> entrySet()]方法 实现[Set 阅读全文
摘要:
Collection生成器CollectionData CollectionData体现了适配器模式的设计思想,它能把实现Generator接口的类的对象(包括上一章数组中的各种RandomGenerator)都复制到自身当中。 Map生成器MapData 我们可以使用同样的方式生成Map,我们可以 阅读全文
摘要:
与Arrays一样,Collections类中也有一些实用的static方法。 (1) 排序操作 reverse(List list):反转指定List集合中元素的顺序 shuffle(List list):对List中的元素进行随机排序(洗牌) sort(List list):对List里的元素根 阅读全文
摘要:
下面是一个Java集合的简化图,我们可以看出,集合分Collection和Map两大部分: 接下来分别以下面几个章节介绍Java集合: Java集合(1):Collections工具类中的static方法 Java集合(2):两个生成器的例子:Collection生成器CollectionData及 阅读全文
摘要:
Java标准类库的System.arraycopy()方法,及在java.utils.Arrays类中一套用于数组的static方法,都是操纵数组实用功能。下面分别介绍。 (1) 数组的复制 (2) 数组的比较 (3) 数组的排序和查找 (1) 数组的复制 System.arraycopy(源数组, 阅读全文