02 2021 档案
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1299919855943714 Collections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。 注意Collections结尾多了
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265124784468736 Java的集合类都可以使用for each循环,List、Set和Queue会迭代每个元素,Map会迭代每个key。以List为例: List<String>
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265121668997888 栈(Stack)是一种后进先出(LIFO:Last In First Out)的数据结构。 什么是LIFO呢?我们先回顾一下Queue的特点FIFO: ────
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265122668445536 我们知道,Queue是队列,只能一头进,另一头出。 如果把条件放松一下,允许两头都进,两头都出,这种队列叫双端队列(Double Ended Queue),学名
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265120632401152 我们知道,Queue是一个先进先出(FIFO)的队列。 在银行柜台办业务时,我们假设只有一个柜台在办理业务,但是办理业务的人很多,怎么办? 可以每个人先取一个号
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265121791832960 队列(Queue)是一种经常使用的集合。Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。它和List的区别在于,
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265121225603904 我们知道,Map用于存储key-value的映射,对于充当key的对象,是不能重复的,并且,不但需要正确覆写equals()方法,还要正确覆写hashCode(
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265119084411136 在编写应用程序的时候,经常需要读写配置文件。例如,用户的设置: # 上次最后打开的文件: last_open_file=/data/hello.txt # 自动
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265117109276544 我们已经知道,HashMap是一种以空间换时间的映射表,它的实现原理决定了内部的Key是无序的,即遍历HashMap的Key时,其顺序是不可预测的(但每个Key
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1300277678309410 因为HashMap是一种通过对key计算hashCode(),通过空间换时间的方式,直接定位到value所在的内部数组的索引,因此,查找效率非常高。 如果作为k
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265117217944672 我们知道Map是一种键-值(key-value)映射表,可以通过key快速查找对应的value。 以HashMap为例,观察下面的代码: Map<String,
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265118019954528 我们知道,List是一种顺序列表,如果有一个存储学生Student实例的List,要在List中根据name查找某个指定的Student的分数,应该怎么办? 最
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265116446975264 我们知道List是一种有序链表:List内部按照放入元素的先后顺序存放,并且每个元素都可以通过索引确定自己的位置。 List还提供了boolean contai
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265112034799552 在集合类中,List是最基础的一种集合:它是一种有序列表。 List的行为和数组几乎完全相同:List内部按照放入元素的先后顺序存放,每个元素都可以通过索引确定
阅读全文
摘要:转载:https://www.liaoxuefeng.com/wiki/1252599548343744/1265109905179456 什么是集合(Collection)?集合就是“由若干个确定的元素所构成的整体”。例如,5只小兔构成的集合。 ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
阅读全文
摘要:一.介绍 由于习惯了C#中Linq的强大功能,遗憾的是,在Java里没有这样强大的功能支持,于是尝试在网上去寻找有无这样的实现。结果还真发现有这么一套开源代码,在Java上实现在C#上有的功能,可以说是用爱发电吧。 上该源码的git地址 https://github.com/timandy/linq
阅读全文
摘要:一.问题 在前端中,使用jquery的上传插件ajaxFileUpload去上传文件。控制台发现后端接口调通并返回信息,但ajaxFileUpload插件却同时进入error和success的回调函数,且不能获取到后端返回的信息。 二.代码 先看看前后端代码。 //前端 $.ajaxFileUplo
阅读全文
摘要:一.介绍 解释器模式(Interpreter Pattern)。属于行为型模式。给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 二.实现 举个例子,有一个中英文翻译系统可以翻译一句英文的话,每个英文单词对应的是去翻译出中文,而标点符号输出的还是标点符
阅读全文
摘要:一.介绍 中介者模式(Mediator Pattern)。属于行为型模式。用一个中介对象来封装一序列的对象交互。中介者使得各对象之间不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 二.实现 举个例子,用户聊天,A用户发了消息,B用户就能收到。B用户发的消息,A用户可以收到
阅读全文
摘要:一.介绍 访问者模式(Visitor Pattern)。属于行为型模式。表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 二.实现 举个例子,如果有元素A、B类,想调用这些元素中的Print方法,很简单地,只要实例化去调用就可以。 publi
阅读全文
摘要:一.介绍 状态模式(State Pattern)。属于行为型模式。当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 二.实现 举个例子,用银行账户的状态来实现状态模式,状态分为两种,一种是正常有钱可以取的状态,一种是已经透支了不能再取钱的状态。每次存钱取钱都会刷新一下这个账户
阅读全文
摘要:一.介绍 备忘录模式(Memento Pattern)。属于行为型模式。它在不破坏封装性的前提下,捕捉一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。 二.实现 备忘录顾名思义就是可以存储多个信息的工具。在该模式下,如果一个对象出现了多种状态,通过管理者的集
阅读全文
摘要:一.介绍 命令模式(Command Pattern)。属于行为型模式。它将请求封装成一个对象,从而使你可以用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 二.实现 举个例子,老板想做一个系统,那老板的话就相当于一个命令,而这个命令又不可能直接说给员工(老板一般都是神
阅读全文