ArrayList和Vector的区别?HashMap和HashTable的区别?StringBuilder、StringBuffer和String的区别?

ArrayList和Vector的区别?从两个方面

1.同步性:ArrayList是线程不安全的,是非同步的;Vector是线程安全的,是同步的。(Java中线程的同步也就满足了安全性)

2.数值增长:ArrayList每次增长为原来的50%;Vector每次增长为原来的100%;

(从内部实现机制来讲,ArrayList和Vector都是使用数组(Array)来控制集合中的对象,当向集合中添加对象时,如果内部数组长度不够用时,长度会自动增长。ArrayList会增长为原来的1.5倍,Vector增长为原来的2倍)

HashMap和HashTable的区别?从三个方面

1.同步性:HashMap是线程不安全的,是非同步的;HashTable是线程安全的,是同步的;

2.值:HashMap可以存空值,而HashTable不能

3.HashMap是实现了1.2版本之后的一个新接口Map,HashTable则是实现了比较老的一个类Dictionary

StringBuilder、StringBuffer和String的区别?

当我们要完成字符串拼接时,从效率上讲StringBuilder >StringBuffer > String

String是不可变对象,StringBuilder和StringBuffer都是可变对象,这也是为什么String+的时候效率会变得非常低的直接原因,另外在创建String时,在底层会new StringBuilder 然后再toString();

StringBuilder是线程不安全的、StringBuffer是线程安全的

ArrayList、Vector、linkedList存储性能和特性?

ArrayList和Vector内部都是用了数组实现存储,在插入数据的时候牵扯到元素的移动和内存的操作,因此在插入的时候效率比较低。而在查找方面效率还是比较高。

Vector使用了同步代码块实现了线程安全,因此在效率上比不过ArrayList。

LinkedList使用双向链表实现存储,在查找是需要向前向后进行遍历,所以查找效率比较低,但是在插入时只需要纪录本项的前后项即可,所以插入效率很高。

 

水平有限,如果有错误,希望博友们帮忙指出!

时间: 2024-07-31 15:09:31

ArrayList和Vector的区别?HashMap和HashTable的区别?StringBuilder、StringBuffer和String的区别?的相关文章

跟王老师学集合(七)ArrayList和Vector实现类

ArrayList和Vector异同与HashMap和Hashtable异同 主讲人:王少华  QQ群号:483773664 学习目标: 1.ArrayList和Vector异同 2.HashMap和Hashtable异同 一.ArrayList和Vector异同 ArrayList和Vector在用法上几乎完全相同 Vector是一个古老的集合,从JDK1.0就有了,从JDK1.2以后,Java提供了系统的集合框架,就将Vector改为实现List接口 ArrayList和Vector的显著区

HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别

Hash算法 Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128

HashMap底层实现原理以及HashMap与HashTable区别以及HashMap与HashSet区别

①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象.当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象.HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中. HashMap在每个链表节点中储存键值对对象. 当两个不同的键对象的hashc

JAVA中HashMap和Hashtable区别

Hashtable和HashMap在Java面试中相当容易被问到,甚至成为了集合框架面试题中最常被考的问题,所以在参加任何Java面试之前,都不要忘了准备这一题. 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Cloneable, <a href="http://lib.csdn.net/base/javase" class='replace_word' title="Java

HashMap、HashTable和concurrentHashMap的区别

HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别.主要的区别有:线程安全性,同步(synchronization),以及速度. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行). HashMap是非synchronized,而Hashtable

HashMap 和 HashTable 区别

来源:http://www.importnew.com/7010.html HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别.主要的区别有:线程安全性,同步(synchronization),以及速度. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable

HashMap和Hashtable

HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别.主要的区别有:线程安全性,同步(synchronization),以及速度. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行). HashMap是非synchronized,而Hashtable

Collections工具类、Map集合、HashMap、Hashtable(十八)

1.Map集合概述和特点 * A:Map接口概述 * 去重复, * 查看API可以知道, * 将键映射到值的对象, * 一个映射不能包含重复的键, * 每个键最多只能映射到一个值.* B:Map接口和Collection接口的不同 * Map是双列的,Collection是单列的. * Map的键唯一,Collection的子体系Set是唯一的,即不重复. * Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效. 2.Map集合的功能概述 * a:添加功

java集合HashMap、HashTable、HashSet详解

一.Set和Map关系 Set代表集合元素无序,集合元素不可重复的集合,Map代表一种由多个key-value组成的集合,map集合是set集合的扩展只是名称不同,对应如下 二.HashMap的工作原理 HashMap基于hashing原理,通过put()和get()方法储存和获取对象. put()方法: 它调用键对象的hashCode()方法来计算hashcode值,系统根据hashcode值决定该元素在bucket位置.如果两个对象key的hashcode返回值相同,那他们的存储位置相同,如