自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

转载 数据结构与算法(八),查找

前面介绍了基本的排序算法,排序通常是查找的前奏操作。这篇介绍基本的查找算法。1、符号表符号表(Symbol Table)是一种存储键值对的数据结构,它可以将键和值关联起来。支持两种操作:插入,将一组新的键值对插入到表中;查找,根据给定的键得到响应的值。符号表,有时又称索引,是为了加快查找速度而设计。它将关键字Key和记录Value相关联,通过关键字Key来查找记录Value。在...

2016-10-25 21:29:00 200

转载 数据结构与算法(七),排序

转载请注明出处:http://www.cnblogs.com/wangyingli/p/5994256.html这节总结一下常见的排序算法。说明:由于对对象元素进行排序需要实现Comparable接口,这里为了实现简单,方便测试,仅对整数进行排序(即排序的对象为整型数组)。1、插入排序排序思想:把待排序的元素按其值的大小逐个插入到一个已经排好序的序列中,直到所有的元素插入完为止...

2016-10-24 19:34:00 191

转载 数据结构与算法(六),图

图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关。图是一种多对多的数据结构。1、基本概念图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。注意:线性表中可以没有元素,称为空表。树中可以没有结点,叫做空树。但是在图中不允许没有顶点...

2016-10-18 19:14:00 274

转载 数据结构与算法(五),优先队列

这节总结一下优先队列的常用实现方法。1、基本概念普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (largest-in,first-out)的行为特征。(百度百科)抽象数据类型:优先队列的接口同前面讲到的队列的接口一样,是其基于泛型的API接口代码如下:...

2016-10-16 17:06:00 212

转载 数据结构与算法(四),树

转载请注明出处:http://www.cnblogs.com/wangyingli/p/5933257.html前面讲到的顺序表、栈和队列都是一对一的线性结构,这节讲一对多的线性结构——树。「一对多」就是指一个元素只能有一个前驱,但可以有多个后继。一、基本概念树(tree)是n(n>=0)个结点的有穷集。n=0时称为空树。在任意一个非空树中:(1)每个元素称为结点(nod...

2016-10-10 15:45:00 258

转载 数据结构与算法(三),栈与队列

转载请注明出处:http://www.cnblogs.com/wangyingli/p/5931782.html上一篇《数据结构与算法(二),线性表》中介绍了数据结构中线性表的两种不同实现——顺序表与链表。这一篇主要介绍线性表中比较特殊的两种数据结构——栈与队列。首先必须明确一点,栈和队列都是线性表,它们中的元素都具有线性关系,即前驱后继关系。一、栈1、基本概念栈(也称下压栈,...

2016-10-08 21:13:00 135

转载 面试宝典(一),链表

转载请注明出处:http://www.cnblogs.com/wangyingli/p/5928308.html在上一篇博客《数据结构与算法(二),线性表》中介绍了线性表的创建、插入、删除等基本操作,这一篇将总结一下链表中最常考的面试题。目录:1、从尾到头打印单链表2、在O(1)时间删除链表结点3、链表中倒数第k个结点4、反转链表5、合并两个有序链表6、复杂链表的复制...

2016-10-04 11:16:00 133

转载 数据结构与算法(二),线性表

转载请注明出处:http://www.cnblogs.com/wangyingli/p/5928258.html上一篇《数据结构与算法(一),概述》中介绍了数据结构的一些基本概念,并分别举例说明了算法的时间复杂度和空间复杂度的求解方法。这一篇主要介绍线性表。本节内容:一、基本概念二、顺序表三、链表1、单向链表2、单向循环链表3、双向链表4、静态链表一、基本概念...

2016-10-02 23:37:00 125

转载 数据结构与算法(一),概述

转载请注明出处:http://www.cnblogs.com/wangyingli/p/5919297.html数据结构学了有一年的时间了,但是一直没有好好的总结一下,现在回想起来,感觉好像都不怎么记得了。所以接下来一段时间我将重新学习一下,算是温故而知新了。本着「分享是一种美德」的精神,我将把我的学习总结记录下来,并与大家分享。本节的主要内容有:一、数据结构1、定义2、关...

2016-09-29 15:29:00 126

转载 java中异常抛出后代码还会继续执行吗

今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢?public void add(int index, E element){ if(size >= elements.length) { throw new RuntimeException("顺序表已满,无法添加"); ...

2016-09-27 11:45:00 3726

转载 Effective java笔记(十),序列化

将一个对象编码成字节流称作将该对象「序列化」。相反,从字节流编码中重新构建对象被称作「反序列化」。一旦对象被「序列化」后,它的编码就可以从一台虚拟机传递到另一台虚拟机,或被存储到磁盘上,供以后「反序列化」使用。序列化技术为JavaBean组件结构提供了标准的持久化数据格式。74、谨慎的实现Serializable接口一个类实现Serializable接口需要付出的代价:一旦一个类...

2016-09-24 18:24:00 116

转载 Effective java笔记(九),并发

66、同步访问共享的可变数据JVM对不大于32位的基本类型的操作都是原子操作,所以读取一个非long或double类型的变量,可以保证返回的值是某个线程保存在该变量中的,但它并不能保证一个线程写入的值对于另一个线程是可见的。因此在读或写原子数据时,使用线程同步是有必须要的,否则将时线程间数据不一致。public class ThreadTest { private stati...

2016-09-24 18:22:00 110

转载 Effective java笔记(八),异常

57、只针对异常的情况才使用异常try { int i = 0; while(true) range[i++].climb();}catch(ArrayIndexOutOfBoundsException e) { }在这段程序中,当循环企图访问数组边界之外的元素时,程序抛出异常并结束无限循环。。使用异常以达到终止无限循环,这种模式不仅模糊...

2016-09-24 18:21:00 98

转载 Effective java笔记(七),通用程序设计

45、将局部变量的作用域最小化将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性。Java允许在任何可以出现语句的地方声明变量(C语言中局部变量要在代码块开头声明),要使局部变量的作用域最小化,最好的方法是在第一次使用它的地方声明。局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处。如果在循环终止之后不再需要循环变量的内容,for循环就优于whi...

2016-09-24 18:20:00 108

转载 Effective java笔记(六),方法

38、检查参数的有效性绝大多数方法和构造器对于传递给它们的参数值都会有限制。如,对象引用不能为null,数组索引有范围限制等。应该在文档中指明所有这些限制,并在方法的开头处检查参数,以强制施加这些限制。对于公有的方法,使用异常检查参数,并在Javadoc的@throws标签中说明违反参数限制时会抛出的异常。对于非公有的方法,使用断言来检查参数。断言如果失败,将会抛出Asserti...

2016-09-24 18:19:00 128

转载 Effective java笔记(五),枚举和注解

30、用enum代替int常量枚举类型是指由一组固定的常量组成合法值的类型。在java没有引入枚举类型前,表示枚举类型的常用方法是声明一组不同的int常量,每个类型成员一个常量,这种方法称作int枚举模式。采用int枚举模式的程序是十分脆弱的,因为int值是编译时常量,若与枚举常量关联的int发生变化,客户端就必须重新编译。java枚举类型背后的思想:通过公有的静态final域为每...

2016-09-24 18:18:00 132

转载 Effective java笔记(四),泛型

泛型为集合提供了编译时类型检查。23、不要在代码中使用原生态类型声明中具有一个或多个类型参数的类或接口统称为泛型。List<E>是一个参数化类,表示元素类型为E的列表。为了提供兼容性,每个泛型都定义一个原生态类型,即不带任何实际类型参数的泛型名称。例如,List<E>的原生态类型为List。使用原生态类型将逃避编译时的类型检查,失掉泛型在安全性和表述性方面的...

2016-09-24 18:17:00 114

转载 Effective java笔记(三),类与接口

类与接口是Java语言的核心,设计出更加有用、健壮和灵活的类与接口很重要。13、使类和成员的可访问性最小化设计良好的模块会隐藏起所有的实现细节,仅使用API与其他模块进行通信。这个概念称为信息隐藏或封装,是软件设计的基本原则之一。信息隐藏可以是实现系统各模块的解耦,以使这些模块可以独立的开发、测试、优化。信息隐藏还提高了软件的可重用性,降低了构建大型系统的风险。java中实体的可访...

2016-09-24 18:15:00 167

转载 Effective java笔记(二),所有对象的通用方法

Object类的所有非final方法(equals、hashCode、toString、clone、finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类(HashMap,HashSet等)将不能正常工作。8、覆盖equals时请遵守通用约定无需覆盖equals的情形:类的每个实例本质上是唯一的。类代表的是活动实体而不是值的概念。(例如...

2016-09-24 18:10:00 97

转载 Effective java笔记(一),创建与销毁对象

1、考虑用静态工厂方法代替构造器类的一个实例,通常使用类的公有的构造方法获取。也可以为类提供一个公有的静态工厂方法(不是设计模式中的工厂模式)来返回类的一个实例。例如: //将boolean类型转换为Boolean类型 public static valueOf(boolean b) { return b ? Boolean.TRUE : Bo...

2016-09-24 17:48:00 70

转载 Sublime Text2配置过程

今天Sublime Text2不知道为什么突然崩溃了,一直不能运行,没办法只有重装了,重装后按我的用途重新配置了一下,现将配置过程记录下来以备将来不时之需说明:配置是在windows系统上进行的,其他系统者绕行用户配置 ...

2015-10-18 20:04:00 94

转载 java中的hashcode()和equals()

equals()和hashcode()都继承自object类。equals()equals()方法在object类中定义如下:1 public boolean equals(Object obj) {2 return (this == obj);3 } 这是对两个对象的地址值进行的比较(即比较对象的引用是否相同)。String 、Math...

2015-10-13 11:12:00 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除