数据结构和算法
文章平均质量分 80
LinkinPark8林肯
博客迁移,请移步jiangweili.me
展开
-
linkin大话数据结构--Collection和Iterator
Java 集合概述Java 集合就像一种容器,可以把多个对象的引用放入容器中。Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组Java 集合可分为 Set、List 和 Map 三种体系Set:无序、不可重复的集合List:有序,可重复的集合Map:具有映射关系的集合在 Java5 之前,Java 集合会丢失容器中所有对象的数据原创 2014-11-09 22:15:22 · 590 阅读 · 0 评论 -
一致性 hash 算法
原文出处:http://blog.csdn.net/sparkliang/article/details/5279393。感谢作者的无私分享。consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面转载 2016-01-20 21:42:01 · 327 阅读 · 0 评论 -
List迭代过滤操作注意点
今天在写一段很简单的代码,本来以为肯定没什么问题,然后直接跑的时候,吆,简单的一个List的操作报错了。仔细一看代码,确实有问题,但是一般真的是如果稍微不小心就会犯下面这种愚蠢的操作。这里我把代码贴出来:public static void main(String[] args) { List list = new ArrayList<>(1); list.add(1); f原创 2016-01-06 17:59:33 · 983 阅读 · 0 评论 -
数据结构--数组
数组是编程语言中最常见的一种数据结构,可用于存储多个数据。每个数组元素存放一个数据,通常可通过数组元素的索引来访问数组元素,包括为数组元素赋值和取出数组元素的值。数组也是一种类型Java中数组要求所有的数组元素具有相同的数据类型。在一个数组中,数组元素的类型是唯一的,即一个数组里面只能存储一个数据类型的数据,而不能存储多种数据类型的数据。1),数组元素的类型是唯一的,即原创 2014-11-24 15:18:19 · 1376 阅读 · 0 评论 -
数据结构--深入数组
数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的,这篇博客将深入介绍数组在内存中的运行机制。内存中的数组数组引用变量只是一个引用,这个引用变量可是指向任何有效的内存,只有当该引用指向有效内存后,才可通过该数组变量来访问数组元素。实际的数组对象被存储在堆内存中,如果引用该数组对象的数组变量是一个局部变量,那么它被存储在栈内存中。如下图所示:原创 2016-05-12 16:32:37 · 653 阅读 · 0 评论 -
数据算法--Arrays的使用
Java提供的Arrays类里包含了一些static修饰的方法可以直接操作数组,这个Arrays类里包含了如下几个static修饰的方法:1),static type binarySearch(type[] a, type key)Searches the specified array of bytes for the specified value using the binary s原创 2016-05-12 21:33:32 · 922 阅读 · 0 评论 -
linkin大话数据结构--Queue
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必按顺序存储,所以插入和删除速度超快.Queue接口继承Collection接口模拟队列:先进先出(FIFO);void add(Object e):将e插入到队列尾部;Object element():获原创 2014-11-10 22:44:07 · 512 阅读 · 0 评论 -
linkin大话数据结构--List
ListCollection子接口;List是有序的集合,集合中每个元素都有对应的顺序序列。List集合可使用重复元素,可以通过索引来访问指定位置的集合元素(顺序索引从0开始),List集合默认按元素的添加顺序设置元素的索引,比如第一个元素的索引就是0,好似数组。List作为Collection子接口当然拥有其所有方法,同时也有自己的方法:void add(int index,Ob原创 2014-11-10 22:03:49 · 467 阅读 · 0 评论 -
linkin大话数据结构--Collections类
操作集合的工具类:CollectionsCollections 是一个操作 Set、List 和 Map 等集合的工具类Collections 中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法排序操作:reverse(List):反转 List 中元素的顺序shuffle(List):对 List 集合元素进行随机原创 2014-11-12 01:32:19 · 502 阅读 · 0 评论 -
linkin大话数据结构--Map
Map映射关系,也有人称为字典,Map集合里存在两组值,一组是key,一组是value。Map里的key不允许重复。通过key总能找到唯一的value与之对应。Map里的key集存储方式和对应的Set集合中的元素存储方式一致;学生都有一个学号,我们能点学号就能找到某个学生,好比这个学号就是key,学生就是value。Map.Entry是Map接口的内部接口,专门用来保存ke原创 2014-11-12 00:50:23 · 521 阅读 · 0 评论 -
linkin大话数据结构--apache commons工具类
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。一、Commons BeanUtils说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。二、Commons CLI说明:这是一个处理命令的工具。比如main方法输入的string[]需要解析。你可以原创 2014-11-24 16:42:51 · 990 阅读 · 0 评论 -
linkin大话数据结构--Google commons工具类
Google Guava Collections 使用介绍Google Guava Collections(以下都简称为 Guava Collections)是 Java Collections Framework 的增强和扩展。每个 Java 开发者都会在工作中使用各种数据结构,很多情况下 Java Collections Framework 可以帮助你完成这类工作。但是在有些场合你使用了原创 2014-11-25 16:53:22 · 1595 阅读 · 0 评论 -
linkin大话数据结构--字符串,数组,list之间的互转
在实际开发中,我们经常会用到字符串,字符数组,字符list,当然也会不可避免的进行这3者之间的互相转换。在使用到Apache和Google下的common包,可以这样子实现:package tz.web.dao.bean;import java.util.Arrays;import java.util.List;import org.apache.commons.lang.Stri原创 2014-11-25 23:40:26 · 937 阅读 · 0 评论 -
linkin大话数据结构--Set
Set 集合Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败。Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals 方法Set是Collection子接口;Set和Collection基本上一样,一点除外:Set无法记住添加的顺序,不允许包含重复的元素。当试图添加两个相同元素进Set集合,添加操作失败,原创 2014-11-10 00:21:17 · 587 阅读 · 0 评论 -
算法--方法递归
方法递归:一个方法体内调用它本身,被称为方法递归。英语是recursive,[rɪˈkɜ:sɪv]。方法递归包含了一种隐式的循环,它会重复执行某种代码,但这种重复执行无须循环控制。递归有一条最重要的规定:递归一定要向已知方法递归,否则就是一个死循环。递归是非常有用的,例如希望遍历某个路径下的所有文件,但这个路径下文件夹的深度是未知的,那么就可以使用递归来实现这个需求。系统可定义一个方法原创 2016-05-16 10:47:44 · 1902 阅读 · 0 评论