zoukankan      html  css  js  c++  java
  • Java数据结构

    枚举Enumeration

    枚举接口定义了一些方法,哦那个给这些方法可以枚举(一次获得一个)对象集合中的元素。

    这种传统接口已被迭代器取代,虽然Enumeration还未被一起,但在目前的代码中很少使用了。

    boolean hasMoreElements()

    测试此枚举是否包含更多的元素。

    Object nextElement()

    如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。

    import java.util.Vector;
    import java.util.Enumeration;
     
    public class EnumerationTester {
     
       public static void main(String args[]) {
          Enumeration<String> days;
          Vector<String> dayNames = new Vector<String>();
          dayNames.add("Sunday");
          dayNames.add("Monday");
          dayNames.add("Tuesday");
          dayNames.add("Wednesday");
          dayNames.add("Thursday");
          dayNames.add("Friday");
          dayNames.add("Saturday");
          days = dayNames.elements();
          while (days.hasMoreElements()){
             System.out.println(days.nextElement()); 
          }
       }
    }
    View Code

    位集合BitSet

     位集合实现了一组可以单独设置和清楚的位或标志。

    该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位",然后对位进行适当的设置或清除,就可以对布尔值进行操作了。

    一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。这和位向量(vector of bits)比较类似。

    BitSet定义了两个构造方法:

    (1)创建一个默认对象

    BitSet()

    (2)允许用户指定初始大小,所有位初始化为0

    BitSet(int size)

    向量Vector

    向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。

    和数组一样,Vector对象的元素也能通过索引访问。

    使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。

    Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的:

    • Vector 是同步访问的。
    • Vector 包含了许多传统的方法,这些方法不属于集合框架。

    Vector类支持4种构造方法:

    (1)创建一个默认的向量,默认大小为10

    Vector()

    (2)创建指定大小的向量

    Vector(int size)

    (3)创建指定大小的向量,并且增量用incr指定。增量表示向量每次增加的元素数目。

    Vector(int size,int incr)

    (4)创建一个包含集合C元素的向量

    Vector(Collection c)

    栈Stack

     栈(Stack)实现了一个后进先出(LIFO)的数据结构。

    你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。

    当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。

     只有一个构造方法Stack()

    字典Dictionary

    Dictionary 类是一个抽象类,用来存储键/值对,作用和Map类相似。

    给出键和值,你就可以将值存储在Dictionary对象中。一旦该值被存储,就可以通过它的键来获取它。所以和Map一样, Dictionary 也可以作为一个键/值对列表。

    Dictionary类已经过时了。在实际开发中,你可以实现Map接口来获取键/值的存储功能。

    哈希表

    Hashtable是原始的java.util的一部分, 是一个Dictionary具体的实现 。

    然而,Java 2 重构的Hashtable实现了Map接口,因此,Hashtable现在集成到了集合框架中。它和HashMap类很相似,但是它支持同步。

    像HashMap一样,Hashtable在哈希表中存储键/值对。当使用一个哈希表,要指定用作键的对象,以及要链接到该键的值。

    然后,该键经过哈希处理,所得到的散列码被用作存储在该表中值的索引。

    属性Properties

    Properties 继承于 Hashtable.Properties 类表示了一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。

    Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。

    Map

    List和ArrayList

  • 相关阅读:
    HDU 1850 Being a Good Boy in Spring Festival
    UESTC 1080 空心矩阵
    HDU 2491 Priest John's Busiest Day
    UVALive 6181
    ZOJ 2674 Strange Limit
    UVA 12532 Interval Product
    UESTC 1237 质因子分解
    UESTC 1014 Shot
    xe5 android listbox的 TMetropolisUIListBoxItem
    xe5 android tts(Text To Speech)
  • 原文地址:https://www.cnblogs.com/blunFan/p/11667974.html
Copyright © 2011-2022 走看看