在上一篇博客[教你如何使用Java手写一个基于数组的队列]中已经介绍了队列,以及Java语言中对队列的实现,对队列不是很了解的可以我上一篇文章.那么,现在就直接进入主题吧. 这篇博客主要讲解的是如何使用单链表实现一个简单版的队列.单向链表队列是属于非循环队列,同时队列的长度是不受限制的,也就是说添加数据的速度比拉取数据的速度快时,队列的长度是无限增长的.单链队列其本质就是一个链表,只不过是在获取或添加数据的时候跟普通的链表有所区别,队列在获取数据的同时也将该节点删除,并且每次获取数据都是从表头获…
一.Vector介绍 Vector可以实现可增长的动态对象数组.与数组一样,它包含可以使用整数索引进行访问的组件.不过,Vector的大小是可以增加或者减小的,以便适应创建Vector后进行添加或者删除操作.Vector和ArrayList也很相似,但是Vector是同步访问的(线程安全的),且Vector包含了许多不属于集合框架的传统方法. 1.Vector的继承关系 public class Vector<E> extends AbstractList<E> implement…
1. List List 是有序的 Collection.Java List 一共三个实现类: 分别是 ArrayList.Vector 和 LinkedList ArrayList ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中.当从 ArrayList 的中间位置插入或者删除元素时,需要对数组进行复制.移动.代价比较高.因此…
本文内容 涞源于  罗刚 老师的 书籍 << 自己动手写网络爬虫一书 >> ; 本文将介绍 1: 网络爬虫的是做什么的?  2: 手动写一个简单的网络爬虫; 1: 网络爬虫是做什么的?  他的主要工作就是 跟据指定的url地址 去发送请求,获得响应, 然后解析响应 , 一方面从响应中查找出要查找的数据,另一方面从响应中在解析出新的URL路径, 然后继续访问,继续解析;查找需要的数据和继续解析出新的URL路径  . 这就是网络爬虫主要干的工作.  下面是流程图: 通过上面的流程图 能…
1. 背景 偶尔会在公司的项目里看到这样的代码 List<Info> infoList = new ArrayList<Info>(); if (infoidList.size() > 100) { int size = infoidList.size(); int batchSize = PER_IMC_INFO_MAX; int queryTimes = (size - 1) / batchSize + 1; for (int i = 0; i < queryTim…
List,Set,Map三者的区别及总结 List:对付顺序的好帮手 List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象 Set:注重独一无二的性质 不允许重复的集合.不会有多个元素引用相同的对象. Map:用Key来搜索的专家 使用键值对存储.Map会维护与Key有关联的值.两个Key可以引用相同的对象,但Key不能重复,典型的Key是String类型,但也可以是任何对象. Arraylist 与 LinkedList 区别 Arraylist底层使用的是数组(存读数据效率…
package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重复的测试 public class TestEquals { public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); Map map=new Has…
1.HasMap 自定义基础版 package com.test.collection; /** * 自定义实现Map功能 * map :存放键值对,根据键对象找对应的值对象 * @author chenx * */ public class MyMap001 { Entry[] arr=new Entry[999]; int size; public void put(Object key,Object value){ Entry e=new Entry(key,value); //解决键重复…
package com.test.collection; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; //Map的基本应用 public class MapTest { /** * @param args */ public static void main(String[] args) { /*…
package com.test.collection; import java.util.Vector; public class MyVector { /** * @param args */ public static void main(String[] args) { /** * vector 实现原理与ArrayList 一样,唯一的区别是,vector中的方法都是通过synchronized进行修饰的 * * 2.ArrayList 查询快,插入.删除慢,线程不安全,效率高 * 3…