java8中HashSet实现原理 发表于 2018-06-15 分类于 java 概述HashSet是一种比较常见的数据结构,经常用它来进行一些重复数据的过滤。在java8中,其主要是通过HashMap来实现的。在放置数据时,将数据作为HashMap的key进行保存,相比其他数据结构(如HashMap, ArrayList)而言,这是一种比较简单的数据结构,因为其方法均委托给HashMap数据结构来实现了。本文主要分析HashSet常用的几个方法。 阅读全文 »
java8中ArrayList实现原理 发表于 2018-06-14 分类于 java 概述ArrayList是常用的数据结构,在java8中,其主要是通过数组来实现的。在插入一个元素时会先判断数组容量是否还能放置元素,如果不能,则进行扩容。本文主要分析add、get、set、remove方法。 阅读全文 »
leetCode-91:Decode Ways 发表于 2018-06-13 更新于 2018-06-14 分类于 leetCode 问题描述用数字126代表大写字母AZ,输入一个非空的数字字符串,要求输出这个数字字符串转成大写字母时有多少种转换的方式。题目链接:**点我** 阅读全文 »
策略模式 发表于 2018-06-13 分类于 设计模式 定义策略模式定义了算法族,分别分装起来,让他们之间可以互相替换,此模式让算法的变化独立与使用算法的客户。这是《Head Fisrst 设计模式》里面的定义,有点拗口不好理解。我的理解是策略模式是让一个类拥有某个接口类的变量,在调用某个函数时,调用接口类变量里的接口函数,当这个类拥有的接口类的变量所指向的具体的实现类不同时可以产生不一样的效果,这个过程中,类调用接口变量的接口函数,并不需要知道接口变量代表的是哪个具体实现,而且也可以改变接口变量所指向的具体实现类来达到不同的效果,可以很好的实现封装效果,也留下了很好的扩展性。 阅读全文 »
leetCode-90:Subsets II 发表于 2018-06-12 分类于 leetCode 问题描述给出一个包含重复数字的整形数组,要求找出数组组成的集合的所有子集合(幂集),并且所有子集中不能包含相同的子集。题目链接:**点我** 阅读全文 »
leetCode-78:Subsets 发表于 2018-06-11 分类于 leetCode 问题描述 给出一个不包含重复数字的整形数组,要求找出这个数组的所有子集合(幂集)。题目链接:**点我** 阅读全文 »
leetCode-60:Permutation Sequence 发表于 2018-06-10 分类于 leetCode 问题描述给定两个数字n和k,要求找出[1,2,3,…,n]的全排列的组合中的的第k个组合,题目链接:**点我** 阅读全文 »
leetCode-31:Next Permutation 发表于 2018-06-08 分类于 leetCode 问题描述给出一个数组,要求找出比这个数组组成的数字大的最小的那个数字组合,如果没有找到,则输出这个数组组成的数字的最小值的组合。题目链接:**点我** 阅读全文 »
leetCode-47:Permutations II 发表于 2018-06-08 分类于 leetCode 问题描述给出一个整形数组,包含重复的数字,要求输出该数组数字的全排列,不能有全部相同的项出现。题目链接:**点我** 阅读全文 »
java反射基本用法 发表于 2018-06-06 分类于 java 概述java反射允许程序在运行时获取类的相关信息并动态的调用类实例的函数(包括私有函数),设置成员变量的值等。java反射在很多地方都有应用,例如,通过配置项调用对应的类中的函数。在写单元测试时,有时需要对私有方法进行单独的测试,此时也可以使用反射调用私有的方法。 阅读全文 »