`

hashtable arraylist 容量

    博客分类:
  • Java
 
阅读更多

  Each ArrayList instance has a capacity. The capacity is the size of the array used to store the elements in the list. It is always at least as large as the list size. As elements are added an ArrayList, its capacity grows automatically. The details of the growth policy are not specified beyond the fact that adding an element has constant amortized time cost.
   An application can increase the capacity of an ArrayList instance before adding a large number of elements using the ensureCapacity operation. This may reduce the amount of incremental reallocation.
    这里说到ArrayList的一个容量的问题,如果想要Add数量比较多的元素,最好要使用该类
的一个叫做ensureCapacity的方法来确保ArrayList实例具有你所要指定的一个最小的容量。这样的话,对于大容量ArrayList实例,应该就可以由JDK正确地指定到内存中了,这些内存段是否连续,当然是由JDK来处理的问题了。至于这个最小的容量可以达到多少,这里没有讲明,不过应该是和内存多少和每个元素的大小有关系的吧,不好一概而论!
    防止out of memory,有一个方法,就是根据每次调用add方法的时候add的返回值(boolean型)来判断!
至于hashTable,与容量有关的是一下的一段:
    The initial capacity controls a tradeoff between wasted space and the need for rehash operations, which are time-consuming. No rehash operations will ever occur if the initial capacity is greater than the maximum number of entries the Hashtable will contain divided by its load factor. However, setting the initial capacity too high can waste space.
    这里提到初始容量和rehash方法,也就是hashtable在初始容量不够用的情况下可以通过
rehash方法自动增加容量,至于可以增加多少,文档也没有提,显然也是类似于ArrayList的吧。

分享到:
评论

相关推荐

    Hashtable与ArrayList的简单应用

    ### Hashtable与ArrayList的简单应用 #### 一、概述 在.NET框架中,`Hashtable` 和 `ArrayList` 是两种非常常用的数据结构。它们被广泛应用于各种应用程序中,用于存储和操作数据。本文将详细介绍如何在C#中使用 `...

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

    - **容量调整**:`ArrayList`和`Vector`在添加元素超过当前容量时会自动扩大容量,`HashMap`在达到一定负载因子后也会自动增大容量。 - **元素唯一性**:`List`中的元素默认不允许重复,而`Map`的键是唯一的,但键...

    arraylist Hashtable

    ArrayList 和 Hashtable 是 Java 编程语言中两种非常重要的集合类,它们都属于 Java Collection Framework 的一部分,用于存储和管理对象。下面将详细讲解这两个数据结构的特性、使用场景以及相关操作。 ArrayList ...

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

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

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

    ### Java容器类详解:List、ArrayList、Vector及Map、HashTable应用 #### 一、Java容器类概述 在Java中,容器类(也称为集合类)主要用于存储和管理对象。Java SDK提供了一系列内置容器类,它们位于`java.util`...

    浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别

    ArrayList和Vector,以及HashMap和Hashtable,都是常用的容器,但它们之间存在一些关键的区别,这将影响到在不同场景下的选择和使用。 首先,我们来看ArrayList和Vector的区别: 1. **同步性**: - `ArrayList` ...

    详解如何选择使用ArrayList、HashTable、List、Dictionary数组

    本文将深入探讨ArrayList、HashTable、List、Dictionary,T>以及其他的集合类型,帮助开发者理解它们的特点和适用场景。 首先,ArrayList作为.NET早期的动态数组,允许在运行时调整大小。它适合存储各种类型的对象,...

    C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解

    C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解 C# 中有多种集合类,每种集合类都有其特点和应用场景。了解这些集合类的区别可以帮助开发者选择合适的集合类来提高程序的性能和可读性。本文将介绍 ...

    HashTable Sort

    1. **创建 HashTable**:创建一个 HashTable 对象,并定义它的初始容量和装载因子(Load Factor)。装载因子是指 HashTable 占用的空间比例,一般设置为 0.75 左右。 ```csharp Hashtable ht = new Hashtable();...

    ArrayList.rar

    在这个深度复习中,我们将探讨ArrayList与其他相关集合类型如Hashtable、List以及Dictionary的区别和使用场景。 首先,ArrayList与Hashtable都是.NET框架中的旧式集合类型,它们不支持泛型,这意味着在存储数据时...

    ArrayList数组列表[借鉴].pdf

    Vector默认增长为原来的两倍大小,而ArrayList增长为其现有容量的一半。这使得ArrayList在大多数情况下比Vector更高效,因为它避免了过多的内存复制。 3. HashMap和Hashtable: - 历史原因:Hashtable是早期Java...

    阿里巴巴电话面试试题.doc

    4. 初始化容量:Hashtable 和 HashMap 的初始化容量不同,Hashtable 的初始化容量为 11*0.75,而 HashMap 的初始化容量为 16*0.75。 四、ArrayList 和 LinkedList 的区别 ArrayList 和 LinkedList 都是 Java 集合...

    各种类集 的区别1

    2. **容量增长策略**:当容量不足时,Vector会将容量翻倍,而ArrayList只会增加50%的大小。这使得ArrayList在内存使用上可能更加高效。 3. **操作效率**:无论是ArrayList还是Vector,从末尾添加和删除元素、获取...

    java面试笔记.pdf

    - Vector在扩容时将容量翻倍,而ArrayList的扩容方式是增加约1.5倍的容量,这使得ArrayList在节约内存空间上表现更优。 - Vector可以设置capacityIncrement参数来控制容量的增长,而ArrayList没有这个功能。 - 为了...

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

    ArrayList 可以看作是能够自动增长容量的数组,而 LinkedList 是一个双链表,在添加和删除元素时具有比 ArrayList 更好的性能,但在 get 与 set 方面弱于 ArrayList。 二、ArrayList 和 LinkedList 的区别 ...

    java中集合类的区别

    - **初始容量**:Vector 的默认初始容量为 10,而 ArrayList 的默认初始容量为 0。这意味着当向 Vector 添加第一个元素时,其内部数组将至少增加到可以容纳 10 个元素的大小;而 ArrayList 会在第一次添加元素时分配...

    3.java集合面试题1

    - **初始容量与扩容**:HashMap默认初始容量为16,而Hashtable默认11,扩容时HashMap按原容量的1.5倍增长,HashTable则按照2n+1增长。 在选择这些集合类时,应根据实际需求考虑性能、线程安全性和数据操作特性。...

    阿里巴巴电话面试试题(含答案).doc

    以下是对Java集合框架、Hashtable与HashMap以及ArrayList和LinkedList的一些关键知识点的详细解释: 1. **Java集合框架**: Java集合框架是一个统一的接口,提供了一种组织和操作对象的方式。它包括了接口(如List...

    阿里巴巴面试题(阿里巴巴面试题电话面试)

    在阿里巴巴的面试中,Java集合框架是常见的话题,尤其是HashMap和Hashtable的区别,以及ArrayList和LinkedList的区别。 HashMap和Hashtable是Java中最常用的两种键值对存储的数据结构,它们都是基于哈希表实现的。...

    面试成功宝典

    - **初始化与扩容**:`HashTable`的默认初始容量为11,扩容时容量变为原来的2n+1;`HashMap`的默认初始容量为16,扩容时容量变为原来的2倍。 - **遍历方式**:`HashTable`使用枚举来遍历键值对;`HashMap`使用迭代...

Global site tag (gtag.js) - Google Analytics