`

ArrayList 和List,HashMap和Hashtable的区别

 
阅读更多
ArrayList 和List,HashMap和Hashtable的区别 
ArrayList: 使用大小可以按需动态增大的数组来实现IList接口的类,列表中的每个元素都是对象。List接口中的方法是很少的。

List:是类属类(Generic Class),实现的是强类型的(每个元素都在List类实例化时指定了类型)列表,可以通过索引存取元素,可以排序,提供了比较强大的方法集合。

Hashtable:这个类根据key的值计算hash值,依据hash值来组织key/value这样一对一对的数据。可用来做人名匹配到人的各种属性这样的对照表,key可以重复的。

HashMap:和Hashtable类似,但是key具有唯一性。可用来做例如身份证号匹配到人的各种属性这样的映射表。 1、数组:java arrays的元素个数不能下标越界,从很大程度上保证了java程序的安全性,而其他一些语言出现这一问题时常导致灾难性的后果。        array可以存放object和基本数据类型,但创建时必须指定数组的大小,并不能再改变。值得注意的是:当array中的某一元素存放的是objrct reference 时,java不会调用默认的构造函数,而是将其初值设为null,当然这跟java对各类型数据赋默认值的规则是一样的,对基本数据类型同样适用。2、vector:对比于array,当更多的元素被加入进来以至超出其容量时,vector的size会动态增长,而array容量是定死的。同时,vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。注意:当调用vector的size()方法时,返回vector中实际元素的个数。     vector内部实际是以array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.object对象,不能用于存放基本类型数据,比如要存放一个整数10,得用new integer(10)构造出一个integer包装类对象再放进去。当vector中的元素个数发生变化时, 其内部的array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。     vetor同时也实现了list接口,所以也可以算作colletion了,只是它还特殊在:vector is synchronized。即vetor对象自身实现了同步机制。3、arraylist:实现了list接口,功能与vetor一样,只是没有同步机制,当然元素的访问方式为从list中继承而来,可存放任何类型的对象。4、hashmap:继承了map接口,实现用keys来存储和访问values,keys和values都可以为空,它与hashtable类的区别在于hashtable类的keys不能为null,并hashtable类有同步机制控制,而hashmap类没有。      在struts类库中实现了一个lablevaluebean,用lable(key)来存储和访问value,很方便。
分享到:
评论

相关推荐

    经典讲解List和ArrayList和Vector和HashTable和HashMap区别

    在Java编程语言中,集合框架是处理对象数组的重要工具,其中`List`、`ArrayList`、`Vector`、`HashTable`和`HashMap`是五个关键的接口和类,它们各有不同的特性和用途。以下是这些概念的详细解释: 1. **List接口**...

    比较Vector、ArrayList和hashtable hashmap

    - HashMap 和 Hashtable 都实现了 Map 接口,HashMap 更快但不是线程安全的,而 Hashtable 是线程安全但较慢。WeakHashMap 则使用弱引用作为键,有助于防止内存泄漏。 - 在选择使用哪种数据结构时,需要考虑性能需求...

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别

    List、ArrayList、Vector及map、HashTable、HashMap是Java容器类中的几个重要的接口和实现类,了解它们之间的区别是非常重要的。 首先,我们来看List和ArrayList的区别。List是一个接口,而ArrayList是一个实现了...

    Java容器类List、ArrayList、Vector及map、HashTable应用

    List、ArrayList、Vector及map、HashTable是Java中常用的容器类,它们都继承自Collection接口,并提供了不同的实现方式和特点。在实际开发中,选择合适的容器类是非常重要的。 Collection接口是Java中最基本的集合...

    Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别.

    ArrayList和LinkedList虽然不是Set,但它们的父接口List属于Collection,而Collection接口有一个子接口Set,例如HashSet是Set接口的一个实现,它内部基于HashMap实现,保证元素唯一性。 7. WeakHashMap WeakHashMap...

    Hashtable和HashMap的区别:

    ### Hashtable与HashMap的区别详解 #### 一、基本概念与历史背景 在Java编程语言中,`Hashtable` 和 `HashMap` 都是用来存储键值对的数据结构。这两种数据结构虽然相似,但是在实现细节上存在显著差异。 1. **...

    Arraylist、Hashtable、Vector

    在Java编程语言中,ArrayList、Hashtable和Vector是三种常见的数据结构,它们都用于存储和管理对象,但各有特点和适用场景。以下是对这三个容器的详细解释: ArrayList是Java集合框架中的一部分,它实现了List接口...

    对java基础集合部分(List、HashMap、HashSet、ArrayList等)底层源码的分析与总结

    本文主要探讨了几个关键的集合接口和实现类的底层源码,包括List、HashMap、HashSet等,以及它们的基本操作。 首先,Collection接口是所有单值集合的父接口,提供了增加、删除、遍历元素的基本方法。例如,`add()`...

    03-Java集合-泛型面试题(24题)-新增.pdf

    本文将从Java集合和泛型两个方面对知识点进行详细的讲解,并对ArrayList、LinkedList、HashMap、HashTable等数据结构进行对比分析。 ArrayList和LinkedList的区别 ArrayList和LinkedList都是List接口的实现类,但...

    农行研发中心-校招常见面试题汇总.pdf

    HashMap和HashTable的主要区别是HashMap线程不安全,而HashTable线程安全。 HashMap允许键值为null,而HashTable不允许键值为null。HashMap继承自AbstractMap,而HashTable继承自Dictionary。 在选择HashMap还是...

    【2022最新版】Java基础面试题总结(70道题含答案解析)

    三、HashMap 和 HashTable 的区别 HashMap 和 HashTable 是两种常用的 Map 实现类。HashMap 是继承自 AbstractMap 类,而 HashTable 是继承自 Dictionary 类。两者在对 null 的支持、安全性、初始容量大小和每次...

    ArrayList数组列表[借鉴].pdf

    ArrayList和Vector都是Java集合框架中实现List接口的两种数据结构,它们都允许存储多个元素,但两者在设计和性能上存在显著差异。 1. 同步性: - Vector是线程安全的,这意味着在多线程环境中,多个线程可以同时...

    Collection,List,Set和_Map用法和区别

    Collection, List, Set 和 Map 用法和区别 Collection 是 Java 中的一种对象集合,提供了许多有用的方法来操作集合元素,例如添加、删除、遍历等。Collection 是一个接口,下面有两个子接口:List 和 Set。 List ...

    java集合类面试题总结

    HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表实现,但它们有所不同。HashMap 允许一个 null 键和多个 null 值,而 Hashtable 不允许 null 键和 null 值。Hashtable 还是同步的,这意味...

    List,set,Map 的用法和区别

    Java 集合框架中 List、Set、Map 的用法和区别 Java 集合框架(Java Collections Framework)是 Java 语言中的一个重要组件,提供了一些基本的数据结构和算法来操作和存储数据。其中,List、Set、Map 是三个非常...

    应聘Java笔试时可能出现问题

    本文将深入探讨Java基础、集合框架以及常见数据结构如ArrayList、Vector、HashMap和Hashtable之间的区别。 1. **Java访问修饰符**:在Java中,`public`、`private`、`protected`以及默认(无修饰符)定义了类成员的...

    最新JAVA线程的全部面试题

    ArrayList和Vector的区别,HashMap和Hashtable的区别

    经典Java集合笔试选择题10道.doc

    ArrayList、Vector和HashMap、Hashtable是Java集合框架中的典型成员,但只有Vector和Hashtable是线程安全的。因为它们的方法内部采用了同步机制,确保了在多线程环境下的正确性。所以正确答案是B和D。 2. **删除...

    Java集合类List-Set-Map的区别和联系.doc

    Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...

Global site tag (gtag.js) - Google Analytics