- 浏览: 88808 次
- 性别:
文章分类
- 全部博客 (151)
- Spring-MVC学习 (5)
- 偶然间发现 (2)
- easyUi学习 (7)
- web项目相关技术 (4)
- java学习 (26)
- webService (4)
- 一些工具的安装使用 (7)
- js学习 (20)
- Sping学习 (7)
- mybatis学习 (5)
- 定时器 (4)
- oracle (2)
- JSP学习 (6)
- HTML一些标签 (1)
- web服务 (2)
- 偶尔得到的地址 (2)
- 常用的代码记录 (2)
- 设计模式 (1)
- java常使用的开源API (1)
- maven (1)
- Socket (1)
- nginx (2)
- jquery (3)
- poi (2)
- 写过的工具类 (19)
- 微信开发 (2)
- mysql (1)
- freemarker (2)
- ftp (1)
- 用过的软件 (1)
- jconsole (1)
- log4j (1)
- redis的简单入门使用 java调用redis (0)
- redis的使用 (2)
- 生活相关的 (1)
最新评论
-
chokee:
...
easyUi学习之开启行编辑模式增删改操作 -
lijie_insist:
就是有的界面需要显示天气啊!所以你要调用天气的接口啊 因为很多 ...
免费的天气接口的一个demo -
zhglance:
请问这是干什么用的呢?
免费的天气接口的一个demo
Java集合框架Collection,不管是面试还是开发中用的都是比较多的,其中一些区别也是问的比较多
------HashMap VS HashTable
HashMap 和 HashTable 都是实现的Map<K,V>接口,Map<K,V>就是一个上级接口,它没有继承别的接口,
从他们的定义中可以看出他们都是实现的map接口,但是HashMap继承的AbstractMap 而HashTable集成的是Dictionary
api定义上面还有一句话的区别:The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.
综上: HashMap是线程不安全的 HashTable是安全的,且HashMap能允许空值作为key or value
------List<E> VS set<E>
collection接口集成的Iterator接口,而List和set都是实现了Collection接口
List是一个有序的序列,Set是一个无序的容器,且不能有空元素和不能有重复元素
------ArrayList<E> 和 Vector<E> 和 LinkedList<E>
三者都实现了List接口,所以三者都是有序的,
Vector和ArrayList基本是一样的 除了Vector是线程安全的(synchronized)
ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayList中添加对象是,数组的大小也相应的改变。这样就带来以下有缺点: 快速随即访问 你可以随即访问每个元素而不用考虑性能问题,通过调用get(i)方法来访问下标为i的数组元素。 向其中添加对象速度慢 当你创建数组是并不能确定其容量,所以当改变这个数组时就必须在内存中做很多事情。 操作其中对象的速度慢 当你要想数组中任意两个元素中间添加对象时,数组需要移动所有后面的对象。
LinkedList LinkedList是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。这样就带来以下有缺点: 操作其中对象的速度快 只需要改变连接,新的节点可以在内存中的任何地方 不能随即访问 虽然存在get()方法,但是这个方法是通过遍历接点来定位的所以速度慢。
HashSet<E> 实现了set<E>接口
上面的描述> 实际是一个hashMap实例,这个类允许空元素
虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在 HashMap的基础上来实现的,这个就是Set和List的根本区别。
HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。看看 HashSet的add(Object obj)方法的实现就可以一目了然了
所以,Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象
------HashMap VS HashTable
HashMap 和 HashTable 都是实现的Map<K,V>接口,Map<K,V>就是一个上级接口,它没有继承别的接口,
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,Cloneable,Serializable
public class HashTable<K,V> extends Dictionary<K,V> implements Map<K,V>,Cloneable,Serializable
从他们的定义中可以看出他们都是实现的map接口,但是HashMap继承的AbstractMap 而HashTable集成的是Dictionary
api定义上面还有一句话的区别:The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.
综上: HashMap是线程不安全的 HashTable是安全的,且HashMap能允许空值作为key or value
------List<E> VS set<E>
public interface Iterator<T> T- the type of elements returned by the iterator
public interface Collection<E> extends Iterator<E> E - the type of elements in this collection
public interface List<E> implements Collection<E> An ordered collection (also known as a sequence).
public interface Set<E> implements Collection<E> A collection that contains no duplicate elements and at most one null element.
collection接口集成的Iterator接口,而List和set都是实现了Collection接口
List是一个有序的序列,Set是一个无序的容器,且不能有空元素和不能有重复元素
------ArrayList<E> 和 Vector<E> 和 LinkedList<E>
public ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable (Implements all optional list operations, and permits all elements, including null and This class is roughly equivalent toVector, except that it is unsynchronized)
public Vector<E> extends extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
public LinkedList<E> extends AbstractSequentialList<E> implements List<E>,Deque<E>,Cloneable,Serializable
三者都实现了List接口,所以三者都是有序的,
Vector和ArrayList基本是一样的 除了Vector是线程安全的(synchronized)
ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayList中添加对象是,数组的大小也相应的改变。这样就带来以下有缺点: 快速随即访问 你可以随即访问每个元素而不用考虑性能问题,通过调用get(i)方法来访问下标为i的数组元素。 向其中添加对象速度慢 当你创建数组是并不能确定其容量,所以当改变这个数组时就必须在内存中做很多事情。 操作其中对象的速度慢 当你要想数组中任意两个元素中间添加对象时,数组需要移动所有后面的对象。
LinkedList LinkedList是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。这样就带来以下有缺点: 操作其中对象的速度快 只需要改变连接,新的节点可以在内存中的任何地方 不能随即访问 虽然存在get()方法,但是这个方法是通过遍历接点来定位的所以速度慢。
HashSet<E> 实现了set<E>接口
public class HashSet<E> extends AbstractSet<E> implement Set<E>,Serializable,Cloneable (actually a HashMap instance,This class permits the null element)
上面的描述> 实际是一个hashMap实例,这个类允许空元素
虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在 HashMap的基础上来实现的,这个就是Set和List的根本区别。
HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。看看 HashSet的add(Object obj)方法的实现就可以一目了然了
所以,Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象
发表评论
-
ajax的分页分页请求,通过ajax来分页
2015-12-01 14:55 395这里面通过自定义标签实现的,因为项目没有采用jsp模板而是用的 ... -
java学习之JAXB解析xml
2015-08-17 09:07 857时间仓促,只记录代码 //实体类 package com.w ... -
生成验证码的方法
2015-07-17 08:43 2忘了在哪里参考过代码,后来自己参照了写了这一段code pac ... -
javax.mail邮件发送返回状态吗
2015-07-02 17:35 1511项目需要集成邮件发送,之前在.net下写过smtp的邮 ... -
javax.mail邮件发送
2015-06-30 12:50 0package com.demo.common; impor ... -
java的(PO,VO,TO,BO,DAO,POJO)解释
2015-06-04 11:31 381原地址:http://www.cnblogs. ... -
JDBC学习
2015-04-21 10:02 253原文来自:http://blog.csdn.net/fight ... -
j2ee web项目的基本结构
2015-03-20 14:50 479原地址:http://www.cnblogs.co ... -
HTTP 返回的状态码的含义
2015-03-20 14:38 377在网上看到的,总结的蛮 ... -
java学习之try catch finally中的return语句执行
2015-03-10 14:21 475http://blog.csdn.net/kavensu/ar ... -
java反射机制的学习
2015-03-06 13:39 299http://blog.csdn.net/zzjjiandan ... -
java学习之时间类的使用
2015-03-06 10:26 404有时候要对时间进行各方面的操作,这里就记录下最近使用到的对时间 ... -
为什么接口的属性用public static final修饰
2015-03-05 09:14 510每次只是看了看.好多都没去实践和去想! 自己写了个接口才会想到 ... -
正则表达式的学习
2015-03-04 11:10 302http://help.locoy.com/Document/ ... -
面向对象的特征
2015-03-02 17:56 323今天看到一篇文章对面 ... -
Class.forName("className"),class.getClass,class.class区别
2015-02-27 17:43 327今天看java.lang.reflect包中的信息时,想到了这 ... -
java调用webservice(asmx)的例子
2015-02-04 16:54 378转自:http://www.blogjava.net/jerr ... -
java学习之流的学习
2015-01-21 14:12 316因为经常用到流,并且发现java中的数据流的确很多种类,而自己 ... -
java学习之图片上传,下载显示demo
2015-01-19 10:43 2496每次都是用的框架来弄 ... -
java学习之String的一些处理函数
2014-12-12 17:17 493前两天开发一个关于解析数据的一个小功能,发现需要大肆的用到St ...
相关推荐
Java.util.Collection类的学习.pdf
Java Garbage Collection Study java 垃圾回收学习
这是java学习总结出来的,关于collection方面的一些知识,供学习参考。
java 集合类学习笔记 arraylist hashmap linkedList hashset
这个一个简单的Java集合类学习代码,让你能够更好的理解Collection集合类。
该资源用于学习Java集合类Collection的使用总结,详细对比了各个集合类之间的区别、使用时的特点等。
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...
对于学习Collection框架有很好帮助
学习集合:理解Java中的Collection、泛型、List、Set、Collections、Map和HashMap等概念和用法。 掌握异常处理:了解Java的异常体系、异常分类,学会声明、抛出和捕获异常,并自定义异常。 初步掌握多线程:理解线程...
《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍 《java jdk 7学习笔记》是作者多年来教学实践经验的总结...
InfoQ的关于JVM GC的学习资料,对于深入学习JVM的GC机制很有帮助
java比较全的基础代码,含有数据类型,集合collection,异常exception,文件输出流io,llambda,cocket,线程等基础代码,包含了一个小的聊天案例,需要全的聊天案例,请到我的其他文件里下载。很适合java初学者以及...
学会使用JDK手册,就是你真正学习java的第一步,相当于你有了一本java宝典,冲吧,一边查字典,一边学习,这样学习效果会更好。 提醒一下:查资料的时候,也是有一定的技巧的。例如,你要查一个接口Collection,首先...
Java集合Collection、List、Set、Map使用详解
JAVA学习资料思维导图,主要包括以下内容: 一、JAVA部分 1、GUI(Abstract Window Tookit).mmap 2、Java中的注解.mmap 3、Java网络编程.mmap 4、Java中的反射.mmap 5、Java中级总结.mmap 6、Swing和事件处理.mmap 7...
<<java基础>> 类和对象>> 接口>> 继承>> 异常>> 线程>> <<applet>> <<Color>> <<Collection>> 流>>
本文主要介绍java 中的Collection接口框架知识,并附实例代码供大家学习参考,希望能帮助有需要的小伙伴
本篇文章小编为大家介绍,java Collection 之List学习介绍。需要的朋友参考下
主要介绍了JAVA中的Collection接口和其主要实现的类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
collection-source-code-analyze(Java集合类源代码分析) 对集合类源代码进行分析主要对增删改查操作的源代码进行分析, 因为这四个操作才是集合中最重要的, 其它的操作示情况进行分析, 分析的流程我采用的是自己仿照...