- 浏览: 622206 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (334)
- java core (12)
- struts2.x (2)
- spring (3)
- hibernate (8)
- jpa (6)
- maven (2)
- osgi (5)
- eclipse (4)
- struts2.x+spring2.x+hibernate 整合 (5)
- ebs (0)
- html (0)
- vaadin (1)
- css (0)
- jquery (0)
- javascript (0)
- svn (1)
- cvs (0)
- axas2.x (0)
- eclipse+maven (9)
- annotation (0)
- 基于OSGi的动态化系统搭建 (1)
- notenet (1)
- jboss eclipse (4)
- eclipse工具 (4)
- jdk1.6+maven3.0.3+nuxeo+svn+felix+cxf+spring+springDM (6)
- spring dm (1)
- Nexus介绍 (1)
- proxool listener (0)
- oracle (4)
- mysql (8)
- 搭建你的全文检索 (1)
- hibernatehibernatehibernate (0)
- cvsearchcvsearch (0)
- mycvseach (0)
- asdfasdfasdf (0)
- propertiey (0)
- hibernate annotation (0)
- libs (0)
- icam (2)
- start 数据库配置 (0)
- jboss (1)
- 让Eclipse启动时显示选择workspace的对话框 (1)
- table表头固定 (1)
- s2s3h4 (0)
- leaver (0)
- mycvsaerchddd (0)
- 关于jboss5.0.1部署 (4)
- bookmarks (0)
- PersistenceUnitDeployment (0)
- mycom (0)
- HKEY_CURRENT_USER = &H80000001 (0)
- syspath (1)
- css div (1)
- Dreamweaver CS5 (0)
- generate (0)
- mysql查看表结构命令 (1)
- LOG IN ERROR EMAIL TO SB (0)
- struts2 handle static resource (1)
- jsf (2)
- log4j (1)
- jbpm4.4 (2)
- down: jbpm4.4 (1)
- jstl1.2 (1)
- spring annotation (1)
- java design pattern (1)
- cache (1)
- ehcache (1)
- 11111 (0)
- myge (0)
- pom.xml (0)
- springquartz (0)
- OpenStack (9)
- hadoop (2)
- nginx (1)
- hadoop openstack (1)
- os (1)
- hadoop-2.6.0 zookeeper-3.4.6 hbase-0.98.9-hadoop2 集群 (5)
- hadoop2.7.0 ha Spark (2)
- tess (0)
- system (1)
- asdf (0)
- hbase (2)
- hbase create table error (1)
- ekl (1)
- gitignore (1)
- gitlab-ci.yml (1)
- shell (1)
- elasticsearch (2)
- Azkaban 3.0+ (1)
- centos用命令 (1)
- hive (1)
- kafka (1)
- CaptureBasic (0)
- CentOS7 (1)
- dev tools (1)
- README.md (1)
- Error (1)
- teamviewerd.service (1)
- scala (1)
- spark (1)
- standard (1)
- gitlab (1)
- IDEA (0)
- ApplicationContext (1)
- 传统数仓 (1)
- redis install (1)
- MYSQL AND COLUME (1)
- java版本选择 (1)
- hue (1)
- npm (1)
- es (1)
- 版本管理 (1)
- 升级npm版本 (1)
- git (1)
- 服务器参数设置 (1)
- 调大 IDEA 编译内存大小 (0)
- CentOS8安装GitLab (1)
- gitlab安装使用 (1)
最新评论
-
ssydxa219:
vim /etc/security/limits.confvi ...
ekl -
Gamehu520:
table中无数据
hbase 出现的问题 -
Xleer0102:
为什么都是只有问没有答,哭晕在厕所
hbase 出现的问题 -
jiajiao_5413:
itext table -
CoderDream:
不完整,缺com.tcs.org.demostic.pub.u ...
struts2.3.1.1+hibernate3.6.9Final+spring3.1.0+proxool+maven+annotation
hashMap和hashTable的几点区别
1. 继承父类不同
HashTable继承的是Dictionary,HashMap继承的是AbstractMap类。
2. 是否同步
HashTable线程安全的,HashMap线程不安全的Map Collections.synchronizedMap(Map m)
3. Key value是否可为null
HashTable的key和value都不能为空,HashMap能put(null,null)。Key相同value代
4. Hash值不相同
HashTable就直接是key.hashCode(),HashMap的hash值hash(key.hashCode())。
5. 遍历方式不同
HashTable用enumeration,HashMap Iterator。
6. 数组默认大小
HashTable是11 增为2x+1,HashMap是16 增为2的指数。
7. 相同方法的功能
HashTable的contains(Object value)=====HashMap的containsValue(Object value)。
HashMap的实现原理:
当Map<String, String> map = new HashMap<String, String>(); map.put(“1”,”1”);
1. new一个HashMap时,会创建一个Entry[] table,它就是用来存储Map的每一个key-value对。table的初始大少为16。
2. 当进行put操作时,首先根据key来计算hash值,如果key为null,它的hash值会设为0,根据这个hash值在来计算它的table中的位置。Entry<K,V> e = table[i],如果e为null,就说明这个key是一个新值,就进行addEntry方法,将这对key-value放入Entry,再将这个Entry放入table中;如果e不为null,就会更新value,将之前的value覆盖。
还有一个问题。当计算出的table的索引大于table的长度。Table的size会*2,也就是说table的size永远是2的倍数。
HashMap可以看作三个视图:key的Set,value的Collection,Entry的Set。 这里HashSet就是其实就是HashMap的一个视图。HashSet内部就是使用Hashmap实现的,和Hashmap不同的是它不需要Key和Value两个值。
ArrayList和LinkedList区别
1. 数据结构
ArrayList是实现了基于动态数组,LinkedList基于链表。
2. 随机访问
ArrayList get和set优于LinkedList要移动指针。
3. 新增和删除操作
LinedList add和remove优于ArrayList要移动数据。
各自所适用的地方,总的说来可以描述如下:
1.添加的元素的位置
列表末尾:增加一个元素所花的开销都是固定的。
数组中增加一项:ArrayList指向所添加的元素,可能对数组重新进行分配; LinkedList开销是统一的,分配一个内部Entry对象。
中间插入或删除一个元素:ArrayList剩余的元素都会被移动;LinkedList的中间插入或删除一个元素的开销是固定的。
3.LinkedList不支持高效的随机元素访问。
4.ArrayList的空间浪费在list列表的结尾预留一定的容量空间,
LinkedList的空间花费在它的每一个元素都需要消耗相当的空间
可以这样说:随机地访问时,用ArrayList会提供比较好的性能;中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。
发表评论
-
idea code
2019-10-14 15:35 324MNQ043JMTU-eyJsaWNlbnNlSWQiOiJN ... -
idea
2018-04-01 07:29 0http://idea.iteblog.com/ ... -
hashmap和hashtable
2012-12-20 15:04 972Java中hashmap和hashtable的区别 ... -
jdk schedule timer task
2012-12-19 10:33 844Implementing and scheduling a t ... -
synchronized
2012-11-01 14:29 01.把 synchronized (i) { 放在 while ... -
sdfasdfasdf
2012-10-19 18:12 0Hi, this is jar, it is really ... -
syspath
2012-09-21 13:42 1203Locale locale = Locale.getDefau ... -
gc---java
2012-06-28 10:38 0JVM内存模型中分两大块 ... -
JAVA_OPTS
2012-06-16 21:40 0set JAVA_OPTS=%JAVA_OPTS% -Xms5 ... -
daemon thread
2012-03-09 22:04 1174用户线程:是你自己写的,可以手工调用;守护线程(Daemon ... -
ClassLoader
2012-02-28 17:53 1214ClassLoader 类加载器 ... -
synchronized 规则
2012-02-27 11:05 0synchronized 方法控制对类 ... -
JDK1.6中文版的对HashMap
2012-02-27 10:28 1324以下是 JDK1.6 中 ... -
JDK1.6中文版的对HashMap
2012-02-27 10:27 964以下是 JDK1.6 中文版的对 HashMap 的具体介绍 ... -
HashMap
2012-02-27 10:04 1003Map map = new HashMap(); ... -
Collection
2012-02-27 09:59 889线性表,链表,哈希表是常用的数据结构,在进行Java开发时,J ... -
until
2012-02-27 08:04 0Until 1 1. Be at the star ... -
Java Thread
2011-12-30 10:11 101951、线程概述 几乎所有的操作系统都支持同时运行 ...
相关推荐
### Java中集合类的区别 #### 一、ArrayList与Vector **ArrayList** 和 **Vector** 都是实现了 **List** 接口的动态数组实现。它们的主要区别在于线程安全性和性能方面。 - **ArrayList**: 不是线程安全的,因此...
10. **集合与数组的区别**:集合是对象的集合,可以动态调整大小,而数组的大小是固定的。集合提供了更丰富的操作,如排序、过滤等,而数组操作相对简单。 以上只是Java集合框架中Collection接口及其相关子接口和...
### 数组与集合的几个区别(五个) #### 引言 在编程中,数组和集合都是非常重要的数据结构,用于存储一组相关的数据项。虽然它们在功能上有一定的相似性,但其实现方式、性能特点以及使用场景都有所不同。本文将...
Java 集合类面试题总结 Java 集合类是 Java 语言中的一种重要组件,用于存储和操作数据。下面总结了 Java 集合类的一些常见问题和答案。 HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表...
集合和数组的区别: 1.集合是大小可变的序列,数组在声明后,长度不可变 2.数组只能存放声明时指定的一种数据类型,集合可变存放多种数据类型 3.数组可以存放基本数据类型,集合只能存放对象 ps:要想往集合中...
Java集合专题总结:HashMap和HashTable源码学习和面试总结 本文总结了Java集合专题中的HashMap和HashTable,涵盖了它们的源码学习和面试总结。HashMap是一种基于哈希表的集合类,它的存储结构是一个数组,每个元素...
本文主要对集合进行了总结,并扩展了一些核心概念。 首先,集合继承体系体现了面向对象的设计思想。接口在集合框架中扮演着定义功能标准的角色,例如`Collection`接口定义了集合的基本操作。抽象类如`...
### 数学集合知识点总结 #### 一、知识归纳 ##### 1. 集合的有关概念 **1) 集合与元素** - **集合(集)**:某些特定对象组成的整体称为集合。集合中的每个对象称为元素。 - **注意事项**: - 集合与集合的元素是...
### 关于Android集合的相关总结 在Java编程语言中,集合框架是进行数据处理与管理的基础工具之一。集合框架主要包括四种核心类型:`Set`、`List`、`Map`以及`Queue`等。本文主要围绕`Set`、`List`、`Map`这三种集合...
根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...
本文主要探讨了集合的两个重要子接口——List和Set的区别,以及解决哈希冲突的四种方法。 首先,让我们来理解一下Collection接口。Collection是所有单列集合的根接口,它定义了通用的操作集合的方法。Collection有...
### 核心Java集合框架学习总结 #### 一、概述 在Java编程语言中,集合框架是一组用于存储和操作对象的接口和类。这些接口和类提供了多种数据组织方式,如列表、集合并和映射等。本篇文章将重点介绍集合框架中的几...
总结来说,Java集合框架提供了丰富的数据结构选择,根据实际需求,如是否需要排序、是否关心元素顺序、是否需要线程安全、性能要求等,可以选择最合适的实现。理解这些接口和类的区别,能够帮助开发者编写更高效、更...
### Java面试题集合与总结 #### 一、面向对象四大特性 **1. 抽象** - **定义**: 抽象是指在编程中提取事物的关键属性和行为,忽略不相关细节的过程。它允许开发者专注于核心功能,从而简化复杂度。 - **作用**: ...
数组与集合的区别 数组和集合都是用于存储和管理数据的数据结构,但是它们有着不同的特点: * 数组的长度是固定的,一旦创建便不能改变,而集合的大小可以动态变化。 * 数组中的元素可以是基本类型,也可以是对象...
最后,关于HashMap和HashTable,除了线程安全性和null值支持的区别外,它们都是基于哈希表实现的Map,但HashMap更适合于单线程环境,而HashTable适合于多线程环境。 了解这些基本概念和关系后,开发者可以根据实际...
总结来说,集合幂级数及其快速算法提供了一种在组合数学和算法设计中处理集合运算的新方法。通过深入理解集合的基本性质,并将这些性质融入到幂级数的概念中,可以构建出在理论和应用中都有重要价值的新工具。这不仅...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了用于存储和管理对象的容器。在Java中,集合主要分为三大类:Collection、List和Map,它们位于`java.util`包下。这些集合接口和实现类构成了Java集合框架的...
- 示例1展示了通过元素的共性和区别判断集合关系的方法,例如M、N、P之间的关系可以通过它们的元素特点分析得出。 - 示例2展示了如何计算集合的子集个数,以及如何根据集合运算规则解决实际问题。 通过理解和掌握...